home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
001
/
pibt3ep2.arc
/
PIBTERM3.DOC
< prev
next >
Wrap
Text File
|
1985-10-08
|
155KB
|
3,747 lines
===================================================
| PibTerm: Communications and Terminal Emulation |
===================================================
For the IBM PC and compatibles
Version 3.0
Philip R. Burns
October 7, 1985
Documentation for PibTerm version 3.0 07 Oct 85 Page 1
Table of Contents
1 Table of Contents
4 Introduction
4 Getting a copy of the source
5 PibTerm features
6 Starting PibTerm
6 Setting the environment variable PIBTERM
7 Using PibTerm
8 Reading the configuration files
8 The phone directory
8 Initializing the modem
8 Terminal emulation mode
9 Using the PibTerm menus
9 Three important PibTerm commands
9 PibTerm Commands
9 Alt-A: Edit line on screen
10 Keys used in editing
10 Alt-B: Send Break
11 Alt-C: Clear screen
11 Alt-D: Dial a number
11 Carrier detect line and dialing
11 Dialing directory format
11 Using the dialing directory
12 Dialing a specific directory entry
13 Moving around the dialing directory
13 Revising a dialing entry
13 Dialing prefixes
14 Other dialing commands
14 Automatic baud rate adjustment
14 Alt-E: Toggling local echo
15 Alt-F: File manipulation
15 Changing the active directory
15 Copying a file
15 Displaying the current directory
15 Erasing a file
16 Find free space on drive
16 Changing the logged drive
16 Viewing a file
16 Quit file manipulation
16 Alt-G: Enter Gossip mode
16 Alt-H: Hang up the phone
17 Alt-I: Produce command list
17 Alt-J: Jump to DOS
17 Alt-K: Set input keys
18 Reading key definition from a file
18 Entering key definitions at keyboard
18 Writing key definitions to a file
18 Quiting key definition mode
18 Contents of key definition strings
21 Alt-L: Log session to printer
21 Alt-M: Toggle Mute Mode
21 Alt-N: New communications parameters
22 Alt-O: Output session to disk
22 Alt-P: Set parameters
23 Format of configuration file
Documentation for PibTerm version 3.0 07 Oct 85 Page 2
Table of Contents
23 PibTerm parameter names
27 Sample configuration file
28 Alt-Q: Redial last number dialed
29 Alt-R: Receive file from remote
29 Ascii protocol
30 Xmodem protocol
30 Modem7 protocol
30 Ymodem protocol
30 Telink protocol
31 Kermit protocol
32 Mahoney BBS autodownload protocol
33 CompuServe B protocol
33 Downloads overwrite existing files
33 Cancelling a download
33 Download buffer size
33 Processing of CANs in Xmodem
34 Send file to remote system
34 Cancelling an upload
34 Ascii file uploads
34 Uploads with CIS B protocol
35 Alt-T: Get translate table
36 Alt-U: Screen dump to file
36 Alt-V: View Back Scroll Buffer
36 Alt-W: Wait for call
36 Alt-X: Exit PibTerm
37 Alt-Y: Display elapsed time
37 Alt-Z: Get area code
37 Shift-Tab: Toggle adding linefeeds
37 Notes on terminal emulation
37 VT52 mode
38 VT100 mode
39 ANSI/BBS mode
39 Using Script File
39 Executing a script file
40 Script file commands
42 General syntax of script commands
42 Detailed description of script commands
42 Addlf -- add line feeds
42 Break -- send a break
43 Capture -- capture session to disk
43 Clear -- clear screen
43 Delay -- delay execution for specified interval
43 Dial --- dial a number
44 Dos -- execute DOS command
44 Echo --- toggle local echo
44 Else -- part of IF statement
44 Endif --- ends an IF block
44 EndWhile -- terminate WHILE block
44 Exit -- terminate script execution
45 Hangup -- hang up the phone
45 Host -- enter Host mode
45 If -- test for condition
45 Conditions allowed in IFs
47 Input -- get input from keyboard
Documentation for PibTerm version 3.0 07 Oct 85 Page 3
Table of Contents
47 Key -- get function key values
47 KeySend -- Send function key value to remote system
48 Log -- toggle session logging to printer
48 Message -- display message on screen
48 Mute -- toggle mute mode
48 Param -- set program parameter
49 Receive -- receive file from remote
49 Redial -- redial last number dialed
50 Repeat -- repeat block of statements
50 Reset -- reset script execution to start of script
50 RInput -- receive input from remote system
50 Send -- send file to remote system
52 SText -- send text to remote system
52 Suspend -- suspend execution of script
52 Text -- send text to remote system
52 Translate -- read in translate table
53 Until -- ends repeat block
53 Wait -- wait for time of day
53 WaitString -- wait for specified string from remote
54 When -- wait for specified string from remote and respond
54 While -- execute statements WHILE condition true
55 Example scripts
55 For CompuServe
56 For CDC/NOS
56 For VAX/VMS
57 For an RBBS system
57 For an IBBS system
58 For FIDO
58 Notes on error handling
58 Critical DOS error handler
59 Invalid keyboard entries and mute mode
59 Introduction to Host Mode
59 Files in host mode
59 Pibterm.usf --- user file
59 Pibterm.msg --- message file
60 Pibterm.xfr --- file transfer list
60 Pibterm.cmt --- comments
60 Pibterm.log --- host session log file
61 Using host mode
61 Autobaud detection
61 Welcome message
62 Entering user name and password
62 Main menu
63 File transfer menu
64 Acknowledgements
Documentation for PibTerm version 3.0 07 Oct 85 Page 4
PibTerm: Communications and Terminal Emulation for the IBM PC
INTRODUCTION
============
PibTerm is a communications and terminal emulation program for IBM
personal computers and compatible units. I, the author, Philip R.
Burns, reserve the copyright to this program and all related
materials. You are granted a license to use the program.
You may also make unlimited copies of the program and distribute these
copies as you desire, except that the author reserves the sole right
to distribute the program for profit. You may request a duplication
charge, not to exceed $10 per copy. You should distribute the program
without any changes you have made, and then a SEPARATE version with
any changes you've made. You should clearly mark the changes in some
sort of documentation file, as well as in the source files you change.
You may use the source code and modify it as you please for
NON-COMMERCIAL APPLICATIONS ONLY. You may NOT use the code in
developing commercial applications without my permission.
I encourage you to extend this program and add interesting new
features. I also encourage you to upload these changes to your local
BBS in order to share your work with others. What I do NOT want is
for you to rip off this code as if it were yours and sell it for a
profit. That's not nice.
HOW TO GET A COPY OF THE SOURCE
===============================
In many cases the source to PibTerm will be available on the same BBS
from which you downloaded the executables, perhaps in several archive
(.ARC) or library (.LBR) files. If not, then you can probably
download it from some one of the BBSs mentioned in the sample dialing
directory included with the executable version of PibTerm. If you
can't find it there, or the phone expense is too great, then you can
send $12 for two disks with a complete .ARC copy of the source to:
Philip R. Burns
Vogelback Computing Center
Northwestern University
2129 Sheridan Road
Evanston, IL. 60201
The $12 is a media, mailing, and handling cost, not a program charge.
The source to PibTerm contains all sorts of interesting Turbo Pascal
routines: not just the terminal emulation and asynchronous
communications parts, but PibMenus, a menuing and windowing system,
Documentation for PibTerm version 3.0 07 Oct 85 Page 5
routines for performing directory and file manipulation, an interface
to MS DOS's file handle input/output system, a routine to emulate
Basic's PLAY statement, a routine for providing full-screen editing, a
routine to invoke a secondary command processor from Turbo, and much
much more. Should keep you Turbo hackers busy for a while, and should
also keep some of you busy figuring out how to improve or add new
features to the code!
PIBTERM FEATURES
================
1. Several different terminal emulation methods:
-- DEC VT52
-- DEC VT100 (large subset)
-- BBS ANSI (ANSI.SYS color graphics and music)
-- Dumb glass TTY
-- Dumb glass TTY in split-screen mode
2. The ability to act as a host program (mini BBS).
3. Ring buffered, interrupt driven, serial I/O.
4. A number of popular file transfer methods:
-- Xmodem Checksum and CRC
-- Modem7 batch with either Checksum or CRC
-- Ymodem (YAM)
-- Telink
-- Ascii with XON/XOFF
-- Autodownload for Bob Mahoney's EXEC PC BBS
-- CompuServe B Protocol
-- Kermit
5. Telephone dialing directory.
6. Session logging/capture to printer and/or disk.
7. On-screen editing (block mode) for use with mainframes.
8. Menu-driven commands.
9. Macro-key definition for constructing terminal keypad
emulations or holding other often-used text sequences.
10. Escapes to the operating system (and return from DOS) within a
PibTerm session.
11. Built-in file and directory manipulation, including directory
display, file display, file copying, file erasure.
12. Screen dumps to a file.
Documentation for PibTerm version 3.0 07 Oct 85 Page 6
13. Customizable modem support.
14. Automatic change of baud rate to the proper one with smart
modems like the Hayes 1200 and USR Courier.
15. Built-in phone area code directory.
16. Dialing session and total session time elapsed counters.
17. Internal line capture buffer which may be viewed at any time.
18. Script files for constructing sequences of commonly used
commands, especially useful for generating auto-logon scripts.
STARTING PIBTERM
================
PibTerm is distributed in both source form (Turbo Pascal) and
executable form (.COM). PibTerm is a large program (over 34000 lines
of Turbo Pascal code) for a micro and operates in an overlay mode.
You do not need to compile PibTerm to use it; you can use the
executable modules directly. If you do wish to compile PibTerm, you
must have version 3.0 of the IBM version of Turbo Pascal (or later).
You will also need about 2 megabytes of free disk space to effect a
complete compilation.
The executable modules are:
PIBTERM.COM
PIBTERM.000
PIBTERM.001
PIBTERM.002
PIBTERM.003
PIBTERM.004
PIBTERM.005
PIBTERM.006
PIBTERM.007
You must place these nine files in the same directory. You can begin
execution of PibTerm by entering:
PIBTERM
in response to the DOS command prompt. PibTerm looks for its overlays
in the current directory. You may want to invoke PibTerm from other
directories as well. In that case you can set the DOS environment
variable PIBTERM to the name of the directory containing the PibTerm
overlays, and use the DOS PATH statement to ensure that the selected
directory is searched when you invoke PibTerm by name. For example,
if you've named your PibTerm directory "MYPIB", located on drive C,
then you could use the following DOS control statements to allow
access to PibTerm from any other directory:
Documentation for PibTerm version 3.0 07 Oct 85 Page 7
PATH C:\MYPIB
SET PIBTERM=C:\MYPIB
PibTerm also uses a number of configuration files. For the terminal
emulation mode these are:
PIBTERM.CNF --- primary configuration file
PIBTERM.PRE --- dialing prefix file
PIBTERM.FON --- dialing directory
PIBTERM.FNC --- function key definitions
PIBTERM.TRA --- translate table
PIBTERM.SCR --- main script file
In addition, for the host mode, these extra configuration files are
needed:
PIBTERM.USF --- user name file
PIBTERM.CMT --- comments file
PIBTERM.MSG --- message file
PIBTERM.XFR --- file transfer list file
PIBTERM.LOG --- session log file
These files must reside in the same directory as PIBTERM.COM, as
indicated by the PIBTERM environment variable.
I have supplied samples of the emulation mode files. These include a
dialing directory with numbers for some good BBS systems and a
configuration file suitable for use with the Hayes 1200 SmartModem or
compatibles. The other emulation mode files will be created as
necessary by PibTerm.
The exact format of PIBTERM.CNF is documented under the ALT-P command
below. The formats for PIBTERM.FON and PIBTERM.PRE are documented
under ALT-D below. The format of PIBTERM.FNC appears under ALT-K
below. PIBTERM.TRA is described under Alt-T, and PIBTERM.SCR is
described in the section on scripts.
I have also supplied sample input key definition files for use with
the VT100 emulator in PibTerm under the VAX/VMS system and the CDC/NOS
system.
See the section below on host mode for a description of the host mode
files and how to create them. You do not need to create host mode
files if you only want to use the terminal emulation mode.
USING PIBTERM
=============
There are basically two general classes of remote communications
programs. One class contains programs like PibTerm, PC Talk, and
Qmodem in which you are always in terminal emulation mode. You enter
commands to the communications program by means of special key
sequences, but you never really leave terminal mode. Other programs
Documentation for PibTerm version 3.0 07 Oct 85 Page 8
like Kermit or Modem are designed with an explicit separate command
mode and a terminal emulation mode. You move from command mode to
emulation mode with a command, and from emulation mode to command mode
by a special key sequence.
I personally prefer programs which are always in terminal mode, which
is why PibTerm is written that way.
If you have used programs like QMODEM, PC TALK, ETERM, PROCOMM, or
TMODEM then the operation of PibTerm in emulation mode will be quite
familiar to you, and you can probably just fire up PibTerm and work
through the menus to see how to use the program. The major difference
is that ALL PibTerm commands are entered using ALT+key sequences;
keypad keys are not used so that they are free for use by the terminal
emulators.
If you have not used one of these programs, then you should read the
following instructions carefully.
After you enter the PIBTERM command to DOS, PibTerm begins execution.
You will see a program notice including the current version and date
of that version:
PibTerm Version 3.0 (October, 1985) Ready.
Hit Alt-I for command list.
PibTerm reads the configuration files, if present, or else prompts you
with a series of menus to obtain the necessary information to create
the configuration files.
If you don't use the sample supplied phone directory, then an empty
directory will be created, unless QMODEM.FON -- the QMODEM phone
directory -- or PCTALK.FON -- the PC Talk phone directory -- is
present in the same DOS directory from which you execute PibTerm. If
PibTerm finds QMODEM.FON, it will ask you if QMODEM.FON should be read
to get the dialing directory entries. If you respond yes, QMODEM.FON
is used to create PIBTERM.FON. If PibTerm can't find QMODEM.FON, but
finds PCTALK.FON, then PCTALK.FON is read to get the dialing directory
entries for PIBTERM.FON.
After the configuration files are read, PibTerm initializes the modem
if a modem initialization string appears in the configuration file.
PibTerm can also be used on a hard-wired line without a modem, in
which case the modem initialization string if present will probably
have no effect. If you do have a modem attached, you should set it so
that the carrier detect line accurately reflects the true carrier
status -- i.e., the carrier detect is NOT permanently set on -- and
also so that the data terminal ready (DTR) line is set to accurately
reflect the status of DTR. Some modems unfortunately have a tendency
to hang up the phone connection when communication parameters like
baud rate are changed if DTR is allowed to reflect reality, so you may
need to set your modem to always have DTR turned on (set high).
After initialization is complete, PibTerm enters terminal emulation
Documentation for PibTerm version 3.0 07 Oct 85 Page 9
mode, emulating whichever terminal you choose as a default in the
configuration file. At this time you may begin entering PibTerm
commands. All PibTerm commands are input by depressing and holding
the ALT key along with the indicated ALPHA key. Most commands cause a
"pop-up" menu box to be displayed over the current contents of the
display. Upon completing the command, PibTerm restores the previous
screen contents.
You choose an item from a menu by EITHER
1. Typing the first character of the menu item, OR
2. Using the up and down arrow keys to move to the desired menu
selection, and then hitting the enter key.
The currently selected item is always highlighted in inverse video in
the menu.
Here are three PibTerm commands you should know about right away:
1. ALT-I provides a complete list of available commands.
2. ALT-X terminates execution of PibTerm and returns you to DOS.
NOTE THAT THE PHONE LINE IS NOT NECESSARILY HUNG UP WHEN YOU
LEAVE PIBTERM. If you set DTR normal on your modem, then the
phone WILL BE hung up by exiting PibTerm. If you have DTR set
permanently high, then the phone IS NOT hung up by exiting
PibTerm. This is a useful feature to allow you to leave
PibTerm and re-enter your session later. However, if you
forget, you may run up a big phone bill, so it's best to hang
up the modem/phone manually before you leave PibTerm unless
you plan to re-enter an on-going session.
3. ALT-H hangs up the phone.
PIBTERM COMMANDS
================
Following is a complete description of each PibTerm command.
Alt-A: Edit line on screen
===========================
When Alt-A is pressed, a highlighted bar appears at line 1 if the
cursor is currently on lines 2 through 25, or on line 25 if the cursor
is on line 1. An XOFF is sent to the host to prevent it from sending
more data. You may then use the arrow keys to move around the screen
to any displayed line and edit that line using the keypad keys listed
below. Pressing the INS key toggles insertion mode (the default) and
overwrite mode, just like in the Turbo editor. A carriage return
causes an XON to be sent to the host, followed by the text of the
newly-edited line. Only one line at a time may be edited and sent
using ALT-A.
Documentation for PibTerm version 3.0 07 Oct 85 Page 10
Alt-A is intended to provide a simple block-mode feature for use with
remote hosts that do not provide full-screen features. For example,
on IBM systems, if you are unfortunate enough to be stuck with using
line editors like QED or EDIT under TSO, you can use the ALT-A feature
to good effect since the entry of a line starting with a number is
interpreted as an insertion. For example, supposed you are in a TSO
QED session and you enter a list command for line 20. The system
responds by listing the current text of line 20:
L 20
00020 HERE IS THE TEXT OF LINE 20
You can now enter Alt-A, move the cursor using the arrow keys to the
displayed line, and change the text, perhaps to read:
00020 HERE IS THE REVISED TEXT OF LINE 20
Now, hitting the return (or enter) key sends the newly revised line to
QED. QED inserts the revised line 20 in your TSO file in place of the
old line 20.
Another good use for this local editing feature is to correct an
improperly entered system command for those systems without an
edit-last-command feature.
Here is a list of available editing key sequences for use with Alt-A:
Key Sequence Resulting edit action
===================================================================
INS Toggles insert/delete mode
DEL Deletes current character under cursor
<- Moves one character to left in line
-> Moves one character to right in line
HOME Moves to start of line
END Moves to end of line
Back Space Erases character to left of cursor, line moves
to left to fill hole.
Other characters Insert mode: character inserted at current
character position
Overwrite mode: character replaces character
at current cursor position
===================================================================
Alt-B: Send Break
==================
Pressing Alt-B sends a sustained break signal. This is the equivalent
of hitting the attention key on many termianls, and is frequently
necessary to gain the attention of a host system when using PibTerm on
a hard-wired line.
Documentation for PibTerm version 3.0 07 Oct 85 Page 11
Alt-C: Clear Screen
====================
Alt-C clears the entire screen, except in Gossip mode, when it clears
your half of the screen only.
Alt-D: Dial a number
=====================
Alt-D invokes the dialing facilities.
VERY IMPORTANT NOTE:
===================
PibTerm monitors the carrier detect line to see if a remote session is
in progress. If PibTerm detects a carrier, it WILL NOT allow you to
dial another number and initiate another session. If your system or
modem MUST keep the carrier detect line high (on) all the time, then
you must go to the Alt-P menu and choose "n) miscellaneous", and tell
PibTerm to IGNORE the carrier detect line for dialing purposes.
Dialing directory format
======================== The dialing directory file PIBTERM.FON is a
random-access text file in which each record corresponds to one host
system. PibTerm as distributed provides for 200 directory entries.
The format of each entry is:
Field Name Length in characters
=====================================
Name of system 25
Phone Number 15
Baud rate 5
Parity 1
Data Bits 1
Stop Bits 1
All fields are plain ascii text. PibTerm uses the associated
communications parameters when dialing the selected phone number.
After pressing ALT-D you will see a the first page of the dialing
directory:
Documentation for PibTerm version 3.0 07 Oct 85 Page 12
-[ Dialing Directory ]---------------------------------------------------
|
|No. --------- Name ---------- --- Number --- -Baud- -Bits- -Par- St
|
| 1 BOSS BBS 1 201 568 7293 2400 8 N 1
| 2 Bob Blacher BBS 1 202 547 2008 2400 8 N 1
| 3 Met Chem BBS 1 203 281 7287 1200 8 N 1
| 4 Craig Derouen's FIDO 1 206 745 2497 1200 8 N 1
| 5 Invention factory BBS 1 212 431 1194 1200 8 N 1
| 6 Dan Doman's BBS 1 212 924 6598 1200 8 N 1
| 7 Programmer's Toolbox 1 301 540 7230 1200 8 N 1
| 8 Rich Schinnel BBS 1 301 949 8848 2400 8 N 1
| 9 Pete Olympia Darwin BBS 1 301 251 9206 2400 8 N 1
| 10 Plain Vanilla PC HOST 1 301 986 9408 2400 8 N 1
| 11 Bob Klahn's Fido 1 302 764 7522 2400 8 N 1
| 12 Sid Bratkovich's Fido 1 312 338 8827 1200 8 N 1
| 13 Gene Plantz BBS 1 312 885 7144 2400 8 N 1
| 14 Ron Fox BBS 1 312 940 6496 2400 8 N 1
| 15 John Friel's BBS 1 319 277 0044 2400 8 N 1
|
| --> R Revise entry P Revise prefix C Clear entry Q Redial
| PgUp/PgDn Page Esc Exit ^/v Scroll H Hang up
| Entry to dial Home First page End Last page
| M Manual dial ENTER dials highlighted entry
|
-------------------------------------------------------------------------
The top part of the display shows the first fifteen numbers in the
dialing directory. This part of the display is scrollable. What
cannot be shown on this printed copy is that the first number's line
is displayed on the PC's screen in reverse video. Whichever number is
currently at the top of the display is the default number. If you
just hit the enter key (return key), PibTerm will automatically dial
this number.
The bottom part of the display indicates the available dialing
commands.
Dialing a specific directory entry
==================================
--> prompts you to enter a directory entry number to dial.
Type the entry number of the system you wish to connect to. The
corresponding phone number in the directory is dialed. You may prefix
the number with one of the dialing prefix characters described below,
in which case the corresponding prefix string is appended to the front
of the phone number. The communications parameters are also set to
those present in the dialing directory. You may hit the ESC (escape)
key to cancel the dialing at any time during the progress of a call.
Once a connection is established, however, hitting the escape key has
no effect.
For example, if you want to dial Gene Plantz's BBS, which is number 13
Documentation for PibTerm version 3.0 07 Oct 85 Page 13
in this directory, then you enter 13 when asked for the number to
dial.
Moving around the dialing directory
===================================
PgDn --- takes you forward a page in the dialing directory.
PgUp --- takes you back a page in the dialing directory.
Up arrow --- takes you down one line in the dialing directory.
Down arrow --- takes you up one line in the dialing directory.
Home --- takes you to first page of directory.
End --- takes you to last page of directory.
Revising a dialing entry
========================
R --- allows you to revise a dialing directory entry. You will be
prompted for the number of the entry to revise, and then the new
values for that entry.
C --- allows you to clear out a dialing entry.
Dialing prefixes
================
P --- allows you to define or revise the five dialing prefixes, or set
a default prefix character.
PibTerm provides for dialing prefixes to be attached to the front of a
phone number. You may define up to five such prefixes which are then
stored in the text file PIBTERM.PRE. Associated with each prefix
number is a prefix character. The five available prefix characters
are the same as those in QMODEM: '+', '-', '!', '@', '#'. You use
these prefix characters to cause PibTerm to add the extra access codes
you need for alternate long-distance services like MCI or SPRINT. For
example, if you use SPRINT then you need to dial the local SPRINT
access number, followed by your SPRINT access code, followed by the
actual number. For clarity let's assume that the local SPRINT access
number is, say, 888 8888, and our access code is 1234567. For a
Hayes-like modem we could define the prefix string for '+' to be
8888888,,,,1234567
where each comma results in a one second pause to provide SPRINT
enough time to answer the call and request the access code. To define
a prefix, use the P command.
Let's assume that you have used the P command to define that prefix
for the '+' key. If you enter then enter +13 PibTerm prefixes the
Documentation for PibTerm version 3.0 07 Oct 85 Page 14
number for Gene Plantz's BBS from the dialing directory with the
string associated with '+' and dials:
8888888,,,,1234567 1 312 885 7144
You can also set a default dialing prefix character. For example,
assume that you hit the P key get to the prefix revision menu. Then
hit the S key to define (or remove) a default dialing prefix. The
default prefix character MUST be one of the prefix characters above or
a blank. The corresponding prefix string is automatically appended to
the front of a dialing directory number IF that number contains more
than seven digits AND you request the number be dialed by hitting the
Enter key -- that is, the number to be dialed must be the currently
highlighted directory entry. The default prefix is NOT added to the
front of a dialing directory number when you explicitly type that
number.
Other dialing commands
======================
M --- allows you to enter a complete phone number to be dialed.
H --- hangs up the phone line.
Q --- redials the last number dialed. This feature works the same way
as the Alt-Q command, so see the section below on the Alt-Q command
for further details.
ESC --- takes you out of the dialing mode.
When entering a command, you need only hit that key to get PibTerm to
respond. You do NOT need to hit the Enter key as well. However, when
you enter a directory number to be dialed, you DO need to hit the
enter key after the last digit of the number.
If a successful connection to the remote system occurs, PibTerm checks
the modem connect message returned by the modem (if any) for the
string designated to be the modem connect message (MC= parameter). If
it is found, then PibTerm assumes that any digits immediately
following the modem message comprise the baud rate at which the modem
connected. If that baud rate differs from the current baud rate,
PibTerm adjusts the baud rate automatically to match that of the
remote host as indicated by the modem.
If the connection to the remote system is not successful, then the
dialing directory is displayed again so that you can choose another
number to dial if you wish.
Alt-E: Toggle local echo
=========================
Some systems do not echo characters you type back to you. In this
Documentation for PibTerm version 3.0 07 Oct 85 Page 15
case you can enter ALT-E to cause PibTerm to echo characters you type.
In other words, if you can't see what you're typing when connected to
a remote host, enter Alt-E to toggle local echo ON. You can later
enter ALT-E to toggle local echo OFF again.
Alt-F: File manipulation
=========================
Depressing ALT-F causes PibTerm to display a menu of file manipulation
facilities. The menu displayed is:
-[ Choose File Function: ]--
| A)ctive directory change |
| C)opy file |
| D)irectory display |
| E)rase file |
| F)ree space on drive |
| L)ogged drive change |
| V)iew a file |
| Q)uit |
-----------------------------
Changing the active directory
=============================
A)ctive directory change prompts you for the name of a new directory
path to be the logged directory.
Copying a file
==============
C)opy file prompts you for the name of a file to be copied and a name
for the copy. Both names may include drive names and full directory
paths. An exact byte-for-byte copy of the selected file is made. The
length of the copied file will be identical to the length of the
original and NOT rounded up to a multiple of 128.
Displaying the current directory
================================
D)irectory display provides a listing of all files in the current
logged directory, their lengths, creation time and dates, and time
required for Xmodem transmission using the current set baud rate.
(You can see what the currently defined baud rate is by entering
ALT-N.)
Erasing a file
==============
E)rase file allows you to specify a file to be erased. BE CAREFUL!
Documentation for PibTerm version 3.0 07 Oct 85 Page 16
Find free space on drive
========================
F)ree space on drive prompts you for the letter of a drive. The
amount of free space in bytes for that drive is displayed.
Changing the logged drive
=========================
L)ogged drive change lets you enter the letter of a new drive to be
used as the logged (current) drive.
Viewing a file
==============
V)iew a file lets you list the contents of an Ascii file. You can
request that a non-Ascii file be displayed, but the result will be
pretty much useless.
Quit file manipulation
======================
Q)uit ends file manipulation mode and returns to terminal mode.
Alt-G: Enter gossip mode
=========================
Gossip mode is a special split-screen mode that allows you to chat
with another remote user using PibTerm or Eterm. The current display
is split into two pieces: the top for characters received from the
remote system, and the bottom for characters you type. This allows a
conversation to take place electronically in a full-duplex fashion,
i.e., both you and the remote system user can be entering text at the
same time.
You can also use gossip mode to segregate what you type from what the
system types.
Gossip mode is a dumb terminal mode -- escape sequences are not
processed.
Alt-H: Hang up the phone
=========================
ALT-H causes PibTerm to hang up the phone using the modem hang-up
command defined in the configuration file, if any. If no command is
defined, or the command fails to hang up the phone, then PibTerm drops
DTR. This should hang up the phone if DTR is not permanently set
high. PibTerm reports if the phone was successfully hung up or not.
If not, you may have to manually hang up the phone line.
Documentation for PibTerm version 3.0 07 Oct 85 Page 17
Alt-I: Produce command list
============================
ALT-I displays a brief list of available PibTerm commands.
Alt-J: Jump to DOS
===================
ALT-J causes Pibterm to invoke a secondary copy of the DOS command
processor using DOS function 4B. This function requires that 64K of
free space be available and will fail if that much space is not
available. If you are using the distributed version of PibTerm, then
the Alt-J functions requires a system with at least 360K.
If the invocation succeeds, then you may enter DOS or other commands
to your heart's content. Entering EXIT as a DOS command returns you
to PibTerm. Note, however, that invoking another program which
commandeers the same communications port that PibTerm is using may
cause trouble, as may executing a program which in turn calls up yet
another copy of the DOS command processor. You may need to reboot if
your system locks up in either of these cases.
Before invoking DOS, PibTerm changes the cursor shape from an
underline to a square box. This reminds you that you are in a
secondary command processor level. Upon return to PibTerm the cursor
is set back to an underline.
Alt-K: Set input keys
======================
ALT-K allows you to define strings to be sent to the host system
whenever any one of the forty function keys (F1 through F10, Shift F1
through Shift F10, Alt F1 through Alt F10, and Ctrl F1 through Ctrl
F10), or anyone of the keypad keys (Home, Ins, Del, PgUp, PgDn, End,
arrow keys, and Ctrl and Alt version of those keys) is depressed.
Strings up of to 65 characters can be assigned to the function keys,
and strings up to 12 characters long can be assigned to the keypad
keys. This facility provides great flexibility in creating logon
scripts, special command sequences for host systems, terminal keypad
values, and so on.
When you hit ALT-K, you will see a menu with the following entries:
-[ Choose Key Definition Method: ]--
| R)ead definitions from file |
| E)nter definitions from keyboard |
| W)rite definitions to file |
| Q)uit key definition |
-------------------------------------
Documentation for PibTerm version 3.0 07 Oct 85 Page 18
Reading key definitions from a file
===================================
R)ead definitions from file causes PibTerm to ask you for the name of
a file containing key definitions. You need only enter the first part
of the file name; the suffix .FNC is assumed. For example, if you
enter "MYKEYS" as the file name, that is the same as entering
"MYKEYS.FNC." However, entering "MYKEYS." causes PibTerm to look for
the file "MYKEYS" WITHOUT the .FNC suffix. Of course, you can enter
the full file name if you wish: MYKEYS.FNC, or even a name like
MYKEYS.DAT.
When PibTerm is initially invoked, the file PIBTERM.FNC, if it exists,
is read in order to set the default function key values. You may
enter key definitions at the keyboard as described in the next section
and then write the resulting definitions to PIBTERM.FNC so that those
definitions will automatically exist when PibTerm is executed.
Entering key definitions at keyboard
====================================
E)nter definitions from keyboard is used to set the key definitions by
hand. You can use E)nter to look at keys you've already defined, or
to create a file to be used in a later session.
Writing key definitions to a file
=================================
W)rite definitions to file causes the current key definitions to be
written out. These can be read later using R)ead. Again, you need
only enter the first part of the file name; the suffix .FNC is
automatically added if none appears in the file name you specify.
Quiting key definition mode
===========================
Q)uit leaves key definition mode and returns to terminal emulation
mode.
Contents of key definition strings
==================================
The actual key definitions are comprised of ordinary Ascii text.
There are four special characters defined for use with the input key
facility:
1. A character to represent a carriage return -- the default is
'|' (ascii 174). This character is defined by FC= in the
PIBTERM.CNF configuration file.
2. A character to cause a one-second delay -- the default is '~'
(ascii 126). The configuration parameter is FD=.
3. A character to cause PibTerm to wait for the immediately
Documentation for PibTerm version 3.0 07 Oct 85 Page 19
following character to be sent by the remote system before
sending any more of the function key string. The default is
'`' (ascii 96). The configuration parameter is FW=.
4. A character to mark the immediately following character as a
control character. The default is '^' (ascii 94). For
example, entering '^G' in a string (the ascii characters 94,
71) results in a single character being entered in the string,
ascii 7 -- the bell character, control-G. When a key string
containing control characters is written to a file using W,
all the embedded control characters are converted to this
marker character format. Upon being read in using R, the
characters are converted back to control characters.
These characters may also be used when defining modem control strings
using the modem definition submenu of ALT-P.
As an example, let's create a one-key auto-logon script for a typical
RBBS-style bulletin board system. The usual logon sequence for an
RBBS system is:
1. Several carriage returns to select the baud rate;
2. The first name, last name, and password.
An appropriate script is:
|~|~|~`?PHILIP;BURNS;PASSWORD|
We send three carriage returns to help RBBS determine the baud rate.
Then we wait for the prompting question mark which asks for the first
name. On RBBS systems you can enter the entire name and password
separated by semicolons on one line. We'll define the key ALT-F1 to
contain the logon script. We begin by hitting ALT-K to get into key
definition mode, and then hit E to get the keyboard entry menu, which
looks like this:
-[ Select keys to define: ]-
| 1) Function keys 1 to 10 |
| 2) Shifted function keys |
| 3) Ctrl + function keys |
| 4) Alt + function keys |
| 5) Keypad keys |
| 6) Alt + keypad keys |
| 7) Ctrl + keypad keys |
| 8) Quit |
----------------------------
We then hit 4 to choose the Alt + function keys. The result is a
display of the current values of the Alt-F1 through Alt-F10
definitions, which will be blank since we have not yet entered any
definition. Hit 1 to indicate that it is Alt-F1 we wish to define.
We then input the logon script we developed above. The resulting
Documentation for PibTerm version 3.0 07 Oct 85 Page 20
screen looks like this (this is slightly squeezed so we can fit it on
the document page):
-[ Input key definition ]--...--------------------------------
| # -Key Name- -------- ... Definition ... ------------ |
| |
| |
| 1 Alt F1 |
| 2 Alt F2 |
| 3 Alt F3 |
| 4 Alt F4 |
| 5 Alt F5 |
| 6 Alt F6 |
| 7 Alt F7 |
| 8 Alt F8 |
| 9 Alt F9 |
| 10 Alt F10 |
| |
| |
| Enter key number to redefine or <CR> to quit: 1 |
| Enter new key definition ... |
| -->|~|~|~`?PHILIP;BURNS;PASSWORD| |
| |
| |
--------------------------------------------------------------
Hitting the enter key completes the key definition. Hitting 8he enter
key again takes us back to the previous menu. Entering 8 for quit
takes us back to the very first Alt-K menu. Hitting Q there lands us
back in emulation mode.
We could now dial an RBBS system in our dialing directory and wait for
the connection to be made. Then, hitting ALT-F1 would automatically
cycle through the logon sequence.
Using a single function key to define an auto-login script is quite
limited. PibTerm provides a much more powerful script facility as
well. See the section later in this document on "Using Scripts."
As another example we can map the VT100's keypad for use with VT100
emulation mode in PibTerm. The sample file VT100.FNC, included with
PibTerm, defines F1 through F10 to be the left half of the VT100
keypad, and Shift F1 through Shift F10 to be the right half of the
VT100 keypad.
To use PibTerm with VAX/VMS, enter the VMS command
SET TERMINAL/VT100
which tells VMS that you're using a VT100 terminal, and select VT100
emulation by hitting ALT-P and selecting "h) terminal definition."
The file CDC.FNC contains another mapping of the VT100 keys for use
with Control Data's NOS operating system. Here the function keys are
Documentation for PibTerm version 3.0 07 Oct 85 Page 21
set to automatically send a carriage return after the actual function
key, as the NOS operating system requires this. To use PibTerm with
NOS, enter the command
SCREEN,VT100.
when you have achieved a successful login to NOS. As before, use
ALT-P to select the VT100 emulation mode.
When running on VM/CMS on an IBM mainframe, with the Yale Ascii
front-end processor, enter VT100 as the terminal type when you are
prompted for the terminal name by the system. Again, ensure that you
are actually in PibTerm VT100 emulation mode by using ALT-P to select
terminal emulation mode.
At this time, not all the possible keypad key combinations will work
properly. That is, not all the keypad characters displayed actually
allow assignment of strings. Try and see if a particular sequence
works on your machine or not. Later versions of PibTerm will be able
to handle this problem.
Alt-L: Log session to printer
==============================
ALT-L toggles the logging of your session to the printer. The printer
is written using the Turbo device LST, which is generally DOS device
LPT1. Initially printer logging is turned off.
Alt-M: Toggle Mute Mode
==========================
ALT-M toggles noise production by PibTerm. If mute mode is ON, then
any bells, beeps, or music received from the host is ignored. The
default is to have those sounds come through.
Normally when PibTerm wants to alert you that you've made a mistake in
typing some kind of entry (especially in the menus), PibTerm rings the
terminal bell. In mute mode, PibTerm flashes the word "<ALERT>"
instead on line 25 of the PC's display.
Alt-N: New communication parameters
====================================
ALT-N allows you to quickly set new communications parameters. Two
menus are displayed: the first prompts you for a new parity/data word
length/stop bit combination, and the second prompts you for a new baud
rate. In both cases, the current settings are highlighted in the
menus, so you can also use ALT-N to see what the current settings are
without changing them -- just hit the enter key to select the current
settings.
Documentation for PibTerm version 3.0 07 Oct 85 Page 22
Alt-O: Output session to disk
==============================
ALT-O toggles the capture of the current session to disk. This works
like ALT-L, except that instead of sending the session to the printer,
the session is sent to a disk file. PibTerm prompts you for the name
of the disk file. If it exists, the captured session is appended to
the end of the file.
Any open capture file is closed when you escape to DOS. This allows
you to look at the captured session with a file-listing program like
TYPE, MORE, Buerg's LIST, or PibList. When you re-enter PibTerm, the
capture file is re-opened and the captured text for the continued
session is appended to the end of the already captured text. If you
have changed the directory, then the capture file cannot be re-opened.
You will need to re-issue the Alt-O command in this case.
Alt-P: Set parameters
======================
ALT-P allows you to set program parameters. These parameters are
initially read from the configuration file PIBTERM.CNF. If
PIBTERM.CNF does NOT exist when PibTerm is invoked, then PibTerm
cycles through the menus in the ALT-P series.
The menu displayed when you press ALT-P is:
--[ Set parameters ] ---------
| a) Communications Port |
| b) Speed (Baud Rate) |
| c) Parity |
| d) Data Bits |
| e) Stop Bits |
| f) Backspace |
| g) Linefeed toggle |
| h) Terminal Type |
| i) Modem setup |
| j) File transfer protocol |
| k) Kermit parameters |
| l) Screen dump file name |
| m) Video mode and colors |
| n) Miscellaneous |
| s) Execute Script file |
| w) Write new config file |
| q) Quit setup |
| |
------------------------------
Each of the menu entries (except w and q ) in turn calls up a submenu
which allows you to set the corresponding program parameters. A list
of these parameters appear below. As an example, assume that we hit
b) for speed. The following menu box appears:
Documentation for PibTerm version 3.0 07 Oct 85 Page 23
-[ Choose Baud Rate ]-
| a) 110 |
| b) 150 |
| c) 300 |
| d) 600 |
| e) 1200 |
| f) 2400 |
| g) 4800 |
| h) 9600 |
----------------------
The default baud rate will be highlighted in inverse video. You can
either enter one of the letters to select a new baud rate, or use the
arrow keys to move to a new baud rate and then hit the enter key.
The format of the file PIBTERM.CNF is as follows: in columns 1-2 of
each record is a code to identify a parameter. After the parameter is
an '=' sign. Following the "=" the value of the parameter appears.
The parameter names are:
DA --- number of data bits per character (7 or 8)
PA --- parity
= N: none
= E: even
= O: odd
ST --- number of stop bits (nearly always 1)
BA --- default baud rate (300 through 9600)
PO --- number of serial port (1 or 2)
BS --- decimal ascii value of backspace character
(8 if backspace sends backspace, 127 if backspace
sends delete)
DE --- decimal ascii value of delete character
(127 if delete sends delete, 8 if delete sends backspace)
TE --- terminal type to emulate
= 0: Dumb terminal
= 1: Dec VT52
= 2: BBS/ANSI (private DEC sequences not recognized)
= 3: Dec VT100 (private DEC sequences ARE recognized)
= 4: Gossip (split screen)
= 5: Host mode
LF --- if line feeds to be added automatically when carriage return
received from remote system.
= 0: no
= 1: yes
Documentation for PibTerm version 3.0 07 Oct 85 Page 24
MI --- modem initialization string
MD --- modem dialing command (e.g., ATDT for Hayes)
MC --- modem connect message (e.g., CONNECT for Hayes)
MN --- modem no carrier message (e.g., NO CARRIER for Hayes)
MB --- modem line busy message (e.g., BUSY for Hayes)
ME --- modem escape characters (e.g., +++ for Hayes)
MT --- milleseconds to surround modem escape sequence
(1500 for Hayes)
MH --- modem hangup command (e.g., ATH0 for Hayes)
MO --- modem timeout value in seconds, i.e., how long
to wait for a connection to be made.
MR --- delay in seconds between redials
MA --- modem command to answer phone (e.g., ATA for Hayes)
MS --- modem host mode setup string
SM --- silent mode
= 0: off
= 1: on
LE --- local echo
= 0: off
= 1: on
FC --- function key carriage return character
FD --- function key delay character
FW --- function key wait for following character
FM --- function key escape character marker
TT --- default file transfer protocol
= XK --- Xmodem checksum
= XC --- Xmodem CRC
= TC --- Telink
= M7 --- Modem7/CRC
= MK --- Modem7/Checksum
= AS --- Ascii
= YM --- Ymodem
= KE --- Kermit
SD --- name of screen dump file
Documentation for PibTerm version 3.0 07 Oct 85 Page 25
TB --- number of bells to ring after file transfer complete
TM --- text mode for display
= M --- monochrome display
= C --- color display
CF --- Foreground color for text display.
= 0: Black = 8: DarkGray
= 1: Blue = 9: LightBlue
= 2: Green = 10: LightGreen
= 3: Cyan = 11: LightCyan
= 4: Red = 12: LightRed
= 5: Magenta = 13: LightMagenta
= 6: Brown = 14: Yellow
= 7: LightGray = 15: White
CB --- BackGround color for text display.
Same values as for CF.
CT --- Color for menu text.
Same values as for CT.
CM --- Color for menu frames.
Same values as for CM.
BP --- if CompuServe B protocol recognized in VT52 or ANSI mode.
= 0: no
= 1: yes
You should keep this option turned off unless you
are actually using CompuServe to prevent line noise
from accidentally throwing you into CompuServe mode.
CompuServe B protocol requests are signalled by the
reception of an Ascii 05 character (ENQ).
EB --- if EXEC PC BBS requests recognized in VT52 mode
0 = no, 1 = yes
This parameter if set to 1 allows you to perform
autodownloads from Bob Mahoney's EXEC PC BBS in Milwaukee.
DP --- default dialing prefix character
= blank : no default prefix character
= +,-,!,@,#: that is the default character, and the
corresponding PIBTERM.PRE entry if the
default dialing prefix string.
If DP is not blank, then hitting the return (enter) key at
the dialing directory menu causes the highlighted number to
be dialed as usual, but the prefix string corresponding to
BP= is prefixed to the phone number ONLY IF the phone number
is longer than seven digits (i.e., is apparently a
long-distance number).
Documentation for PibTerm version 3.0 07 Oct 85 Page 26
BB --- number of lines in review (backscroll) buffer
= 0: no backscroll buffer
> 0: number of line, maximum of 800.
Number will be adjusted to available memory.
XM --- if "exploding" menus to be used.
= 0: no
= 1: yes
XB --- the number of bytes to be used as a download
buffer in file transfers. The default is 2048 bytes,
which is 16 Xmodem 128 byte sectors.
AB --- if Host mode autobaud detection is to be based upon
information extracted from the modem connect message.
= 0: no, wait for caller to enter carriage returns
and detect speed from that.
= 1: yes, read modem connect message and get
speed from that (i.e., CONNECT 2400).
VB --- Background color for VT100 emulation mode.
= colors 0 through 15 as defined for CF= above.
VF --- Foreground color for VT100 emulation mode.
= colors 0 through 15 as defined for CF= above.
VE --- Foreground color for high-intensity VT100 mode.
= colors 0 through 15 as defined above.
VU --- Underline color for VT100 emulation mode.
= colors 0 through 15 as defined above.
KC --- Block check type for Kermit.
= 1: 6-bit checksum (default)
= 2: 12-bit checksum
= 3: 16-bit CRC
KE --- Marks end of Kermit packet
= Ascii ^M = CR (should not have to be changed)
KH --- Character marking start of Kermit packet.
= ^A = SOH (should not have to be changed)
KN --- Number of pad characters to put in Kermit packet.
Default is zero (no padding).
KP --- Default pad character. Default is ^@ (Ascii 0).
KQ --- Control-quote character for Kermit (default is #).
KR --- Repeat data character for Kermit (default is ~).
KS --- Size of Kermit data packets (default is 80 characters).
Documentation for PibTerm version 3.0 07 Oct 85 Page 27
KT --- Seconds to wait for character to arrive before timing out
in Kermit.
KW --- Seconds to wait before sending first file of batch
in Kermit upload mode.
K8 --- Eighth-bit quoting character for Kermit
= & as default.
There are some other parameters but they are for debugging purposes
and so can be ignored.
There are two sample configuration files provided on the PibTerm
distribution disk. You should rename PIBBW.CNF to PIBTERM.CNF and use
it if you have a monochrome monitor. Rename PIBCOLOR.CNF to
PIBTERM.CNF and use it if you have a color monitor.
Here are the values provided by the sample PIBCOLOR.CNF file included
with the distribution copy of PibTerm. The values for PIBBW.CNF are
identical EXCEPT for the TM, CF, CB, CT, CM, VB, VF, VE, and VU
parameters.
FC=|
FD=~
FW=`
FM=^
DA=8
PA=N
ST=1
BA=1200
PO=1
BS=127
DE=8
TE=3
AG=0
LF=0
MI=ATZ|~ATX1|~ATS10=30|
MD=ATDT
MC=CONNECT
MN=NO CARRIER
MB=BUSY
ME=+++
MT=1500
MH=ATH0|
MO= 60
MR= 45
MA=ATA|
MS=ATZ|~ATX1|~ATS0=1|
MW=50
SM=1
PM=0
LE=0
Documentation for PibTerm version 3.0 07 Oct 85 Page 28
TT=XC
SD=scrndump.dat
GD=6
TB=8
TM=C
CF=6
CB=0
CT=2
CM=4
BP=0
EB=1
DP=+
BB=100
XM=0
CH=0
XB=2048
AB=1
VB=0
VF=6
VE=14
VU=1
KC=1
KD=1
KE=^M
KH=^A
KN=0
KP=^@
KQ=#
KR=~
KS=80
KT=5
KW=15
K8=&
Since PIBTERM.CNF is an ordinary Ascii text file, you can create or
edit it with an text editor that produces such files. Illegal
parameters are ignored by PibTerm.
Alt-Q: Redial last number dialed
=================================
ALT-Q starts a re-dial of the last number dialed, if any. If no
number has been previously dialed in the current PibTerm session, then
you are prompted to enter a dialing entry, just like in the ALT-D
command above. Redialing continues until you terminate it or a
connection is made. Only one system can be re-dialed at a time.
During the period between redials PibTerm displays a continually
decremented timer telling you how long it will be before the next
redial attempt. You also receive the prompt
R = redial now ESC = stop C = change delay
Documentation for PibTerm version 3.0 07 Oct 85 Page 29
If you hit R then an immediate redial occurs. If you hit the escape
key (ESC) then the redial is cancelled. If you hit C then you are
prompted for a change in the redial delay. Enter the new redial
delay, which is the number of seconds between redial attempts. The
redial delay is initially set from the parameter MR= in the
PIBTERM.CNF file.
Alt-R: Receive file from remote
================================
ALT-R allows you to receive a file from the remote system. You are
prompted for the name(s) of the files to be transferred and the
transfer protocol. For all protocols you will see a menu detailing
the progress of the transmission -- blocks received, lines received,
errors encountered, and so on.
The following transfer protocols are available in PibTerm:
-- Xmodem Checksum and CRC
-- Modem7 batch with either Checksum or CRC
-- Ymodem (YAM)
-- Telink
-- Ascii with XON/XOFF
-- Autodownload for Bob Mahoney's EXEC PC BBS.
-- Kermit
-- CompuServe B protocol
The menu you see when you hit Alt-R looks like this:
-[ Choose file transfer protocol for download: ]------
| a) Ascii |
| b) Xmodem (Checksum) |
| c) Xmodem (CRC) |
| d) Kermit |
| e) Telink |
| f) Modem7 (Checksum) |
| g) Modem7 (CRC) |
| h) Ymodem |
| i) Ymodem (Batch) |
| |
| |
| |
| |
| |
| |
------------------------------------------------------
Ascii
=====
Ascii file transfer receives a file without any kind of error
checking. This is the fastest transmission method for text files and
generally works well on hard-wired lines. It does NOT work for binary
Documentation for PibTerm version 3.0 07 Oct 85 Page 30
files, and it is NOT well-suited for use over phone lines or digital
transmission units. This is because of the high probability of line
noise introducing spurious characters -- especially on long-distance
calls.
Xmodem
======
Xmodem Checksum and Xmodem CRC are the two commonest transfer methods
for use with remote bulletin board systems and many mini-computer
systems. These are single-file-at-a-time transfer methods. Ward
Christensen originated the Xmodem protocol. Files are transmitted in
128 character blocks along with the block number and checksum or
cyclic redundancy check information. This allows the receiving system
to ensure that the transmission has occurred correctly to a very high
degree of probability. The CRC error-checking method is superior to
the Checksum method, so you should always use the CRC method if the
remote system to which you are connected accepts it. RCPM, Fido, and
PC Host bulletin board systems support Xmodem CRC; recently, RBBS
systems have started to support it. Few mainframe systems support
Xmodem; CDC's NOS is one that does.
Modem7
======
Modem7 batch protocol is a variant of Xmodem which sends the file name
before the file itself. This provides for sending a batch of files
all at one time. Each file is preceded by the file name. Either
checksum or CRC error-checking can be used with Modem7.
Ymodem
======
Ymodem is another Xmodem variant which provides for long 1024
character blocks -- more efficient for higher baud rates like 2400,
4800, and 9600 baud -- and for sending the exact file size. Ymodem
also has facilities for sending the file creation time. Ymodem can
act either as a single-file or a batch-file protocol. Ymodem was
developed by Chuck Forsberg and Ward Christensen. PibTerm supports
both the single-file and batch version of Ymodem, and also supports
the file length and file creation time information.
Telink
======
Telink is a variant of Modem7 proposed by Tom Jennings that adds
information on file size and file creation time to the file name.
PibTerm will use the file size and creation time information from
Telink if it appears. Telink is most useful with FIDO bulletin board
systems. PibTerm always requests the CRC version of Telink, since
there is no reason to use the Checksum version.
Incidentally, if you enter the wrong Xmodem variant protocol name,
PibTerm will try and adjust as it receives blocks from the remote
Documentation for PibTerm version 3.0 07 Oct 85 Page 31
system. In other words, if the remote system decides to send the file
using Telink, but you just say Modem7, PibTerm will adjust to Telink
anyway. Likewise, a Ymodem 1024-character block is automatically
handled, as is the Ymodem header block if any, even if you say that
you want an Xmodem transfer. Of course, PibTerm cannot always adjust
properly, so it's best to tell it the proper transfer type to avoid
problems.
Kermit
======
Kermit is a protocol developed at Columbia University. It is
available on a large number of computer systems, from micros to
mainframes. It is probably the commonest and most widely available
protocol on mainframes. It is also the only protocol available in
PibTerm that provides for transferring binary files even when the
transmission parameters are set for 7 bits. Kermit does this though
the use of a "quoting" mechanism so that an 8-bit character is
transmitted as a special marker character indicating the high-order
bit is turned on and a second character containing the other seven
bits. Kermit can transmit a single file or a group of files. The
version implemented in PibTerm can be used with a remote server, but
PibTerm itself does not act as a Kermit server.
Here is the menu which appears when you choose Kermit protocol:
-[ Choose Kermit function: ]-----------
| |
| a) GET text file |
| b) GET binary file |
| c) RECEIVE text file |
| d) RECEIVE binary file |
| L) Logout remote server |
| Q) Quit kermit |
| |
| |
---------------------------------------
With Kermit you need to distinguish between receiving a text file and
receiving a binary file. Many mainframe Kermits will only accept text
files, while some microcomputer Kermits only accept binary files
(including text files send as binary files). When receiving a file
you must also distinguish between the Kermit GET and RECEIVE
functions. Use RECEIVE to transfer a file when you have manually
requested the remote Kermit to SEND a file. Use GET to transfer a
file when the remote system is in server mode. You can also logout
the remote Kermit server from PibTerm using the L) Logout entry in the
Kermit transfer menu. PibTerm leaves you at the Kermit menu until you
type Q) quit; this allows you to GET many files without having to
first type an Alt-R for each.
If you choose a) GET text file or b) GET binary file then you will be
prompted for the name of the file to receive. This should be the name
Documentation for PibTerm version 3.0 07 Oct 85 Page 32
of the file on the remote system. If the name is not compatible with
MS DOS file naming conventions, PibTerm will try to alter it to make
it compatible. If the file name already exists, then PibTerm will
rename the incoming file. In either case you will be told what the
revised file name will be.
If you choose c) RECEIVE text file or d) RECEIVE binary file then the
(possibly altered) file name from the remote system is used.
You may enter a wildcard specification if the remote system
understands it.
There are a number of Kermit parameters which can be defined at the
Alt-P K) Kermit parameters menu. In general, you will never need to
alter those values. If you do, consult the Kermit manual for the
remote system in order to see what settings you need to use.
Because of the text/binary complication, you may find that a Kermit
transfer fails if you specify the wrong type. Most often, you should
use the TEXT transfers to mainframes, and the BINARY transfers to
micros. You may also need to set parameters in the remote Kermit,
such as character set type or timeout values. Again, consult the
reference manual for the remote system's Kermit for details.
There are three different error-checking methods used in various
Kermit implementations. The first method, which all Kermits allow, is
the 6-bit checksum. Some Kermits optionally provide a 12-bit
Checksum, which is the second method. The third method is to use a
16-bit CRC, similar to the one in Xmodem-CRC but differing in the
definition of the bit string order. PibTerm's Kermit will work with
any of those three block checks. If the remote Kermit provides the
16-bit CRC, you should use that on phone lines. The 6-bit Checksum
seems reliable enough for hard-wired connections. On downloads,
PibTerm automatically switches to whatever block check the remote
Kermit uses. You generally need to issue a command to the remote
Kermit to get it to use the optional block checks. See the reference
manual for the remote Kermit for details.
The Kermit implementation in PibTerm is based in part upon the TKERMIT
program written by Jeff Duncan. Thanks Jeff!
Mahoney BBS autodownload
========================
Bob Mahoney implemented a special variant of Modem7 protocol for use
on his EXEC PC BBS system in Milwaukee, Wisconsin. This protocol is
ONLY available when you are in VT52 emulation mode; this corresponds
to the IBM 3101 mode used by Bob's BBS. To use the autodownload
feature on EXEC PC BBS, you must be in the file transfer menu of EXEC
PC. You then enter
A;file1;file2;file3;....
where the A indicates an autodownload is desired, and file1, file2,
Documentation for PibTerm version 3.0 07 Oct 85 Page 33
etc. are the file names of files to download. You need NOT enter
ALT-R at all, since PibTerm will receive instructions directly from
EXEC PC BBS to begin and execute the download. Greg Ryan provided the
original code in Turbo Pascal to implement this autodownload facility
(thanks, Greg!).
CIS B
=====
CompuServe B Protocol, like the special Exec PC BBS protocol, does NOT
require an explicit Alt-R for a download. Instead, you must be in
VT52 or Ansi or VT100 mode, and you must have set the Compuserve B
recognized flag (using Alt-P, then requesting the "n) miscellaneous
parameters" menu). CompuServe will issue an Ascii 05 character (ENQ),
which automatically starts the transfer. You can halt a transfer by
hitting the ESC (escape) key. The actual cancellation time can be as
much as thirty or forty seconds. You should avoid setting this
protocol ON by default unless you are about to do a transfer on
CompuServe. The reason is that line noise often appears as ENQ
characters, resulting in spurious CompuServe transfers being
initiated.
In the single-file tranmission methods, you are informed if a
downloaded file would overwrite an existing file. No such warning
occurs in the batch transfer methods, to avoid timeout problems. The
best approach is to change the logged directory when downloading files
to be an empty directory.
You may cancel a transfer by hitting ALT-R again while the transfer is
in progress. Do not expect an immediate response from PibTerm since
the cancellation requires some handshaking between PibTerm and the
remote system.
At this time, PibTerm does NOT check if the download disk contains
enough room to hold the received file. You should ensure that there
is enough room before starting a transfer.
The default download buffer for Xmodem is large enough to hold sixteen
128-byte or two 1024-byte sectors. This means that a disk write is
usually done only after collecting sixteen 128-byte sectors or two
1024-byte sectors. You can adjust this buffer size by altering the
value of the 'XB=' parameter (see the Alt-P section above) to indicate
the number of 128-byte sectors to hold in memory before a disk write
is performed. The expanded buffer size is also used by Kermit.
PibTerm requires AT LEAST TWO CAN characters (Ctrl-X or Ascii 24) to
cancel a download. This eliminates unnecessary cancellations because
of spurious CANs attributable to line noise.
Documentation for PibTerm version 3.0 07 Oct 85 Page 34
Alt-S: Send file to remote
===========================
ALT-S allows you to send files to a remote system. The same protocols
are available as for sending files, with the exception of the EXEC PC
method, for which there is no corresponding auto-upload. The menu for
uploads resembles that for downloads.
For single file transmission methods you are prompted for the name of
the file to be transmitted. For the batch methods you may enter a
wildcard specification, and all files matching the wildcard
specification will be transmitted to the remote system. For example,
if the current logged directory has three files
A.PAS
B.PAS
C.PAS
then entering the file name as *.PAS to, say, Modem7 results in all
three files being transmitted to the remote system.
You may cancel a transfer (except in CompuServe B mode) by hitting
ALT-S again while the transfer is in progress. Do not expect an
immediate response from PibTerm since the cancellation requires some
handshaking between PibTerm and the remote system.
When you upload an Ascii file, you will be prompted for the name of
the file. Then, you will be asked the following questions:
1. What delay to use between characters;
2. What delay to use at the end of a line;
3. What character to wait for from the remote system in order to
send the next line (the pacing character);
4. Whether to send a carriage return only or a carriage return
and line feed combination at the end of each line.
The inter-character delay and inter-line delays provide a means of
slowing down the transfer to accomodate slow mainframe systems which
have difficulty accepting large batches of characters all at once.
The pacing character instructs PibTerm to wait until the selected
character appears from the remote before sending each line of text.
Some remote systems prefer to have an ascii file entered only with
carriage returns, not carriage returns and line feeds together.
CompuServe B Protocol does NOT require an explicit Alt-S for an
upload. Instead, you must be in VT52 or Ansi or VT100 mode, and you
must have set the Compuserve B recognized flag (using Alt-P and then
requesting the "n) miscellaneous parameters" menu). CompuServe will
handle the transfer automatically. You can halt a transfer by hitting
the ESC (escape) key. The actual cancellation time can be as much as
thirty or forty seconds. You should avoid setting this protocol ON by
Documentation for PibTerm version 3.0 07 Oct 85 Page 35
default unless you are about to do a transfer on CompuServe. The
reason is that line noise often appears as ENQ characters, resulting
in spurious CompuServe transfers being initiated.
Alt-T: Get translate table
===========================
ALT-T allows you to define a translation map for all incoming
characters. You may request that any one of the 256 Ascii characters
be changed to any other character. This facility is most useful in
stripping unwanted characters -- just request that the incoming
unwanted characters be translated to nulls (binary 0 -- also known as
control-@).
ALT-T causes PibTerm to prompt you for the name of a file containing
translation information. You can enter the name of a file if one
exists, or just hit the enter key if you want to enter the translation
mapping from the PC's keyboard. You need only enter the first part of
the name; the suffix .TRA is assumed. The translate file PIBTERM.TRA
(if it exists) is automatically read when PibTerm is first invoked.
You can create that file here using keyboard definition mode.
If you hit enter rather than a file name PibTerm displays a menu
containing the current translation definitions for ascii characters 0
through 127. You can hit S to select a display of characters 128
through 255. Use arrows to move up/down/left/right through the
displayed table. To change a character definition, just enter the
decimal value of the ascii character to which to map the selected
character. You may define as many characters as you please.
To exit the translate definition mode, hit the ESC (escape) key. You
will be prompted for the name of a file to which to save the
definitions. You can just hit the enter key, in which case the
definitions are not saved to a file. If you do enter a file name, you
need only enter the first part of the name; the suffix .TRA is
assumed. You can then use that file later by hitting ALT-K and
providing that file name.
You may have as many different files of translation mappings as you
want, but of course only one translation mapping can be in effect at a
time. You can change the mapping by hitting ALT-K to read a new file
or edit the definitions by hand.
The file STRIPHI.TRA provided as part of the PibTerm release materials
contains a translation table that causes the Ascii characters from 128
through 255 to be mapped into the characters 0 through 127 in order.
This mapping is useful if you are calling a remote system using 8
bits, and No Parity as the communications parameters -- a good first
choice -- and you see mostly garbage on the screen after connecting.
The garbage is often a result of the remote system using even or odd
parity. When using STRIPHI.TRA, PibTerm will strip the parity bit off
each incoming character so that you can read it and figure out what to
do next.
Documentation for PibTerm version 3.0 07 Oct 85 Page 36
Alt-U: Screen dump to file
===========================
ALT-U prompts you for a file name to receive the text of the currently
displayed screen image. Only the text on the screen is written to the
file, not the attributes (like color, or blink). You can only perform
a screen dump when you are in terminal mode, NOT when you are already
at another menu or in host mode.
ALT-V: View Back Scroll Buffer
===============================
If the BB=n parameter is greater than zero, then PibTerm saves the
last n lines displayed on the screen in a back scroll buffer. You can
display the saved lines by hitting Alt-V. The result will be a
split-screen display in which the first 20 lines of the screen act as
a window over the back scroll buffer, and the available commands and
the number of the current line being viewed appear at the bottom of
the screen.
The PC keypad keys control viewing. Use the up and down arrows to
scroll up and down one line at a time through the saved lines. PgUp
and PgDn take you up and down a page of 20 lines, respectively. Home
takes you to the first page, and End takes you to the last page. ESC
exists the view mode.
The view buffer does NOT take account of escape sequences, so the
resulting saved display for a full-screen session may not be very
readable.
Alt-W: Wait for call
=====================
ALT-W causes PibTerm to enter host mode. In this mode PibTerm acts
like a mini-BBS and answers the phone, providing a simple message and
file-transfer facility. More details on using host mode in PibTerm
can be found in a special section on PibTerm host mode below.
Alt-X: Exit PibTerm
====================
Alt-X serves three purposes:
1. If a "WHEN" string is active, Alt-X is used to stop the "WHEN"
processing from happening.
2. If a script is executing, Alt-X stops the script from
executing.
3. If no script is running, Alt-X is used to exit PibTerm.
The phone line is NOT necessarily hung up when you exit PibTerm. It
generally will be if you have the DTR line set normal. This allows
Documentation for PibTerm version 3.0 07 Oct 85 Page 37
you to re-enter the session at a later time if you so desire. If you
set DTR permanently high, then the phone line is probably NOT hung up
when you exit PibTerm. Hence, you should be sure to hang-up the phone
using ALT-H before leaving PibTerm if you do not plan to re-enter a
session.
Alt-Y: Display elapsed time
============================
Alt-Y displays two elapsed time values: the total time since PibTerm
started executing, and the elapsed time since the last successful
remote dialing session began. You may clear the latter timer value by
entering a C when prompted.
Alt-Z: Get area code
=====================
ALT-Z invokes PibTerm's built-in dialing area directory. You can
enter a dialing code, a state, or a country and receive the
corresponding state, country, or dialing codes. For domestic area
codes, you also receive a list of representative cities and towns in
that area.
Shift-Tab: Toggle adding linefeeds
===================================
Some systems may not send a carriage return/line feed sequence, but
only a carriage return, assuming that a line feed will automatically
be added by the remote terminal. Hitting Shift-Tab toggles this
automatic addition of a line-feed character to each incoming carriage
return. If you log into a system and all the lines from the remote
system are being displayed on a single line, then you probably need to
toggle linefeed mode by hitting Shift-Tab.
NOTES ON TERMINAL EMULATION
===========================
PibTerm provides dumb terminal emulation (and gossip mode, a
split-screen dumb terminal mode), an ANSI mode for connecting to BBS
systems which use ANSI graphics and music, Dec VT52 mode (which can
also be used to display some IBM 3101 codes), and Dec VT100 mode. The
VT52, VT100, and ANSI/BBS modes need some further explanation.
VT52 MODE
=========
The VT52 mode is quite complete, and features a couple of additional
escape sequences for use with Bob Mahoney's EXEC PC BBS (for box
drawing and auto-downloading). Many mainframe and mini systems
recognize the VT52 terminal.
The keypad is mapped onto the function keys F1 through F10 and Shift
Documentation for PibTerm version 3.0 07 Oct 85 Page 38
F1 through Shift F10. F1 through F10 are the LEFT half of the keypad;
Shift F1 through Shift F10 are the RIGHT half of the keypad. You may
also use the PC's arrow keys as the VT52 cursor keys. Double-width
keys in the real VT52 keypad are mapped on to two adjacent keys on the
PC's function keys. Pressing either of the PC function keys which map
to one VT52 key will activate that key.
Note that the VT52 function key definitions OVERRIDE ANY OTHER
DEFINITIONS YOU MAKE for the function keys.
VT100 MODE
==========
The PibTerm VT100 emulator processes all the codes that the standard
MS DOS ANSI.SYS processes, plus a number of private DEC escape
sequences. VT102 codes for character insert and delete or printer
control are NOT implemented (yet!). Mode change requests ( ESC [ ...
l or ESC [ ... h ) that change character sizes are ignored. This
means no double height or double width characters, no 132 column mode,
and so on. Also, only fixed position tabs are allowed -- tab setting
is not implemented. In general, any escape sequence not implemented
in PibTerm is simply swallowed up and ignored.
Nevertheless, the implemented sequences are sufficient to use the
full-screen editors EDT under Dec's VAX/VMS, XEdit under IBM's VM/CMS
(through some Ascii front end protocol converter, e.g., Yale's), and
FSE under CDC's NOS operating system.
Unlike the VT52 mode, the VT100 keypad has NOT been mapped onto a
fixed set of keys. Instead, you can define whatever keys are most
convenient for your particular application. The file VT100.FNC
provided with this copy of PibTerm contains definitions which map the
standard VT100 keypad applications mode keys onto function keys F1
through F10 and Shift F1 through Shift F10 -- again, the left half of
the VT100 keypad is mapped to F1 through F10, and the right half is
mapped to Shift F1 through Shift F10. The PC's arrow keys function
like the keypad application mode cursor keys.
The file CDCNOS.FNC contains definitions useful under CDC's NOS
operating system. Unlike the VAX, the CDC system requires that a
carriage return follow each keypad character in order to be
recognized. CDCNOS.FNC defines the proper codes for use with the FSE
editor, and adds the required carriage return. This makes it very
convenient to use the PC as a terminal to NOS since you do not have to
constantly hit the carriage return key after each VT100 keypad key.
Note that the order of the keys is DIFFERENT in CDCNOS.FNC than in
VT100.FNC.
PibTerm's VT100 emulation DOES understand requests for the alternate
VT100 graphics characters. PibTerm maps the VT100 graphics characters
onto similar PC graphics characters.
Documentation for PibTerm version 3.0 07 Oct 85 Page 39
ANSI/BBS MODE
=============
The ANSI/BBS mode interprets a small set of ANSI commands, sufficient
to handle the codes usually sent by BBSs. In addition, the special
escape codes for music are interpreted and played through the PC's
speaker (unless mute mode -- selected by ALT-M -- is in effect).
USING SCRIPT FILES
==================
PibTerm provides an extended script file facility which allows you to
create a file containing a set of instruction for PibTerm to execute.
The instructions can include dialing up a remote system, performing
file transfers, and waiting for a specific time before initiating an
event. The script facility allows you to set up PibTerm to run in an
unattended mode and take advantage of off-hours rates on host computer
systems, as well as to automate such chores as logging in to remote
systems.
Executing a script file
=======================
There are two ways to execute a script file. The first is to enter
the file name of a script file on the PibTerm command line itself at
the DOS prompt:
PIBTERM script.SCR
where 'script.SCR' is the name of a script file. You need not
explicitly give the .SCR, it is understood if no other extension is
provided.
When PibTerm begins execution, it will take its input from the script
file. You may still make keyboard entries if you desire, and there
are some script commands which explicitly request keyboard entry.
This provides quite a bit of flexibility in case something goes wrong
during the execution of a script and you are present to repair the
damage.
If no script file name appears on the PibTerm invocation, PibTerm
looks for the file PIBTERM.SCR and executes it as a script if found.
To exit a script, use the ALT-X command. When a script is executing,
you will be prompted as to whether or not you want to stop executing
the script. If you then want to exit PibTerm, type Alt-X again.
The second way to execute a script file is to go to the Alt-P menu and
select S)cript file execution. You will be prompted for the name of
the script file to execute. Again, you need only provide the first
part of the file name; .SCR is understood.
Before executing a script file, PibTerm scans it and converts it to an
Documentation for PibTerm version 3.0 07 Oct 85 Page 40
in-memory list of commands. During the scanning process, you will be
informed if any script command line is syntactically bad. (PibTerm
only looks for the first bad line at this time.) Any erroneous script
statement prevents PibTerm from executing the script.
Script files are limited to 32767 characters in length. This should
be sufficient for nearly any purpose. Also, the size of a script is
limited by the available memory to hold the "compiled" script code.
If there is not enough memory for the script, it will not be executed.
SCRIPT FILE COMMANDS
==================
Script file commands consist of an initial command word possibly
followed by one or more arguments. Blank lines or lines beginning
with an "*" may be used as comments. Many of the commands perform
similar functions to the regular Alt-letter keyboard entries described
previously.
Here is a complete list of PibTerm script commands with a brief
description of the purpose of each. A detailed description of each
command follows.
AddLF --- adds line feeds to carriage returns (like Ctrl-Tab).
Break --- issue a break sequence (like Alt-B).
Capture --- toggles session capture to specified file (like Alt-O).
Clear --- clears the screen (like Alt-C).
Delay --- Delays PibTerm execution for specified length of time.
Dial --- dial a number in the dialing directory (like Alt-D).
Dos --- executes a specified DOS command (somewhat like Alt-J).
Echo --- toggles local echo (like Alt-E).
Else --- FALSE branch of an IF statement.
Endif --- ends an IF statement.
EndWhile --- ends a WHILE statement.
Exit --- stop executing the script.
Hangup --- hangs up the phone (like Alt-H).
Host --- enters Host mode (like Alt-W).
If --- test for several different types of conditions;
Else is also available and Endif terminates an IF block.
Documentation for PibTerm version 3.0 07 Oct 85 Page 41
Input --- prompt for input from local user.
Key --- sets function keys from specified file (like Alt-K
"Read definitions from a file").
KeySend --- sends specified function key's definition to remote
system.
Log --- toggles session logging on printer (like Alt-L).
Message --- display message on PC's screen; message is not sent
to remote system.
Mute --- toggles mute mode (like Alt-M).
Param --- sets program parameters (syntax like that used in the
PIBTERM.CNF file -- see Alt-P description above).
Receive --- receives a file from a remote system (like Alt-R).
Redial --- redials the last phone number entered (like Alt-Q).
Repeat --- begins block of statements to be repeatedly executed unti
condition on matching UNTIL statement is true.
Reset --- starts executing script from the beginning again.
RInput --- prompt for input from remote system.
Send --- sends a file to a remote system, like Alt-S.
SText --- send text to remote system, and interpret embedded
characters like function key characters.
Suspend --- suspends script execution for specified length of time
(PibTerm continues executing).
Text --- send text to remote system without interpretation.
Translate --- reads in a translation table (like Alt-T).
Until --- terminates REPEAT block and provides termination conditio
Wait --- stops PibTerm execution until a specified time
(in HH:MM:SS form) is reached, at which time execution
proceeds.
WaitString --- waits for a given string to appear from the
remote system (only done once).
When --- waits for a given string to appear from the
remote system, and then sends a specified response
string (done as often as required string appears).
Documentation for PibTerm version 3.0 07 Oct 85 Page 42
While --- Begins block of statements to be repeatedly executed as
long as specified condition is true. A While block is
terminated by an EndWhile statement.
Syntax of script commands
=========================
A couple of general comments about script command syntax are in order
here.
1. Command names may be entered in any case; "CLEAR" = "Clear" =
"ClEaR".
2. Each command must fit on a single input line. There is no
provision for multi-line commands.
3. When quoted strings are called for, either single or double
quotes may be used. To insert a quote into a string in which
that same quote is being used as the string delimiter, write
two adjacent quotes. For example, the string
Here's a string
can be written as:
'Here''s a string'.
4. Quoted strings cannot span a line. If the closing quote for a
string is not encountered before the end of the line, then a
quote is automatically assumed at the end of the line.
SCRIPT COMMANDS IN DETAIL
=========================
This section describes each Script command in detail. Necessarily,
the examples for some commands use other commands which will not be
described until later. You may need to make two passes through these
descriptions in order to fully understand the examples.
AddLF
=====
'AddLF' toggles the addition of a line feed to each carriage return
received from the remote system. 'AddLF' acts exactly the same as the
Ctrl-Tab PibTerm keyboard entry.
Break
=====
'Break' issues a sustained break signal over the communications port.
This is exactly the same as hitting the Alt-B.
Documentation for PibTerm version 3.0 07 Oct 85 Page 43
Capture
=======
'Capture' toggles session capture to a specified file. The file
should be specified in quote marks. For example, to initiate session
capture to file "GETIT.DAT", use the script command:
Capture "GETIT.DAT"
To turn off capture later in the same script, just enter Capture with
no argument:
Capture
Be careful -- if you enter Capture with no arguments, and you have not
previously requested session capturing, then PibTerm will issue a
prompt for the capture file name. The intent here is to provide
flexibility when running a script in attended mode; but if you're not
careful, you may find an unattended script gets hung up waiting for
the capture file name entry.
Clear
=====
'Clear' clears the screen, just like the Alt-C keyboard command.
Delay
=====
'Delay' delays PibTerm execution for the number of tenths of a second
specified by the argument. For example,
Delay 10
delays PibTerm execution for one second (ten tenths = one). To delay
execution for half a second, enter:
Delay 5
'Delay' differs from the 'Suspend' command described below. The
Suspend command only halts SCRIPT processing for the specified length
of time. Delay halts ALL PibTerm processing (except the asynchronous
reception of incoming characters).
Dial
====
'Dial' dials a number in the PibTerm dialing directory, just like
Alt-D. Specify the number to be dialed in quotes. For example, to
dial directory entry 3, use the command:
Dial "3"
You can add the dialing prefix characters if you wish:
Documentation for PibTerm version 3.0 07 Oct 85 Page 44
Dial "-3"
You can also request a manual dial by prefixing the entire number with
an M:
Dial "M1234567"
Dos
===
'Dos' executes a specified DOS command -- somewhat like Alt-J, but
only for a single command. Specify the command to be executed in
quotes.
For example, to execute a DIR command, enter:
Dos "DIR"
Unlike the Alt-J command, 'Dos' automatically returns to PibTerm after
executing the single specified DOS command, unless the specified
command is null. In that case, 'Dos' WILL drop to a new level of the
command processor, and you will have to enter EXIT to return to
PibTerm.
Echo
====
Echo toggles local echo mode, just like the keyboard entry Alt-E. In
local echo mode, PibTerm displays characters as you type them, and
doesn't wait for the remote system to echo them back.
Else ====
'Else' is described as part of the 'If' command below.
Endif
=====
'Endif' is described as part of the 'If' command below.
EndWhile
========
'EndWhile' is described as part of the 'While' statement below.
Exit
====
'Exit' terminates execution of the script. PibTerm automatically
inserts an exit at the end of a script, so you need not provide it
there. Exit is most useful when you want to stop script execution
somewhere in the middle of a script.
Documentation for PibTerm version 3.0 07 Oct 85 Page 45
Note that terminating a script does NOT terminate processing of any
defined 'When' string. See the section on the 'When' script command
below for further details.
Hangup
======
'Hangup' hangs up the phone, just like the keyboard entry Alt-H.
Host
====
'Host' causes PibTerm to enter Host mode, just like the keyboard
command Alt-W. In this mode PibTerm acts like a mini-BBS (bulletin
board system). Remote callers can dial your system and transfers
files and leave messages. See the section on PibTerm Host mode below
for more details.
If
==
'IF' provides a mechanism for testing several different types of
conditions. The general form of the 'If' statement in PibTerm is:
IF condition
< script statements executed if condition is TRUE >
ELSE
< script statements executed of condition is FALSE >
ENDIF
The 'Else' part is optional and need not be specified. You MUST
specify the 'Endif'.
The following conditions can be specified on the If statement:
Waitstring --- If the string specified in the last previous
WaitString command appeared (see the WaitString
command for more details).
Connected --- If PibTerm is connected to a remote system.
This check is performed by examining whether the
carrier detect line is active or not.
Local --- If the reply string provided to the last previous
'Input' command (which see) contains the string
specified immediately following the 'Local' on
the IF statement. The reply string from the
'Input'
statement must match in case with the text on the
'If' command. Note that the test is a CONTAINMENT
test, not and EQUALITY test.
Remote --- If the reply string provided to the last previous
Documentation for PibTerm version 3.0 07 Oct 85 Page 46
'RInput' command (which see) contains the string
specified immediately following the 'Remote' on
the IF statement. The reply string from the
'INPUT'
statement must match in case with the text on the
'If' command. Note that the test is a CONTAINMENT
test, not and EQUALITY test.
You need only provide the first three letters of these conditions.
You may also prefix each of these conditions with a "NOT" to indicate
that you wish to test the reverse of the specified condition.
For example, to see if PibTerm is online to a remote system, you could
write:
If Connected Then
Message "PibTerm is connected to a remote system."
Else
Message "PibTerm is NOT connected to a remote system."
Endif
The 'Then' on the If statement is optional, and is ignored if present.
It's just there so that inveterate Pascal programmers who can't STAND
to write an If without a Then will be happy.
To ask a yes/no answer to a question about hanging up the phone, and
test for a yes/no answer, you could write:
Input "Do you want to hang up the phone? "
If local "Y,y" Then
Message " "
Message "OK, hanging up the phone."
Else
If local 'N,n' Then
Message " "
Message "OK, phone not hung up."
Else
Message "Bozo, you didn't enter Y or N."
Endif
Endif
This example indicates that If statements may be nested. You may nest
If statements up to 10 deep. This example also illustrates that the
If statement checks are case-sensitive, but you can easily include
both cases of text to check for in the If statement.
The next example demonstrates how to check that the text from a
WaitString command has appeared:
WaitString "Username:" 20
If NOT WaitString Then
Message "Username prompt did not appear within twenty seconds."
Hangup
Exit
Documentation for PibTerm version 3.0 07 Oct 85 Page 47
Endif
Here the WaitString command (which see) is looking for the string
"Username:", and a time limit of 20 seconds has been placed on its
appearance. If the WaitString doesn't appear in those twenty seconds,
then the next statement in the script file -- here the If statement --
is executed. The If statement checks if the "Username:" text ever
arrived, and if not, hangs up the phone and quits script execution.
The conditions tested by the If statement can also be tested in the
'Repeat/Until' and 'While/EndWhile' statements, providing a facility
for conditional looping in scripts. See the 'Repeat' and 'While'
statements for more details.
Input
=====
'Input' prompts for input from the keyboard. The prompt should be
enclosed in quotes. The keyboard input is stored in a string and can
be tested by the 'If Local' statement.
For example, to ask a yes/no question about hanging up the phone,
write:
Input "Do you want to hang up the phone? "
To see how the resulting input can be used, see the 'If' statement
description above.
Key
===
'Key' sets function keys from a specified file, like the Alt-K
keyboard entry "Read definitions from a file". Put the file name from
which the definitions are to be read in quotes. For example,
Key "mydefs"
reads key definitions from file "mydefs.fnc" -- the ".fnc" is
understood.
KeySend
=======
'KeySend' sends the specified function key's definition to the remote
system. The function key name should NOT appear in quotes. The
allowed names are:
F1 through F10;
A1 through A10 (for Alt-F1 though Alt-F10);
C1 through C10 (for Ctrl-F1 through Ctrl-F10);
S1 through S10 (for Shift-F1 through Shift-F10).
For example, to send the text associated with function key F1 to the
Documentation for PibTerm version 3.0 07 Oct 85 Page 48
remote system, enter:
KeySend F1
Log
===
'Log' toggles session logging on printer, like the keyboard entry
Alt-L. You should ensure that your printer is turned on before using
Alt-L. When logging is active, all the output from the remote system
is echoed on your printer.
Message
=======
'Message' displays a message on your screen; the message is NOT sent
to any remote system to which you may be connected. Specify the text
of the message to be sent in quotes. For example:
Message "Here is a sample message."
The message text cannot span more than a single line. You may enter
as many 'Message' statements in a row as you want, if you wish to have
more than one line of text appear.
Mute
====
'Mute' toggles mute mode, like the keyboard entry Alt-M. In mute
mode, no sounds like bells or music are issued. This is ideal for
those late-night sessions when you want to log in to those BBSs that
play the entire top 40 rock hits before they allow you to do anything
useful, and for those mainframe systems which beep at you everytime
you do ANYTHING at all.
Param
=====
'Param' sets Pibterm program parameters. The syntax follows that used
in the PIBTERM.CNF file (see Alt-P description above). You specify
the two-letter name of the parameter to change, then an equal sign,
and then the value to be assigned to that parameter. The parameter
names and values are described in the description of the Alt-P
keyboard command above.
For example, to change the terminal emulation to VT100 mode, write:
Param te=3
To change the baud rate to 1200 baud, write:
Param ba=1200
Documentation for PibTerm version 3.0 07 Oct 85 Page 49
Receive
=======
'Receive' causes Pibterm to receive a file from a remote system, like
the keyboard command Alt-R. Specify the name of the file to be
received in quotes, and the transfer protocol after the file name.
The protocol names are:
A -- Ascii
X -- Xmodem CheckSum
XC -- Xmodem CRC
Y -- Ymodem
YB -- Ymodem Batch
T -- Telink
M -- Modem7 Batch Checksum
MC -- Modem7 Batch CRC
K -- Kermit (Text file)
KB -- Kermit (Binary file)
For example, to receive the file YUMYUM.PAS using Xmodem-CRC, write:
Receive "yumyum.pas" xc
To receive a batch of files using Telink, write:
Receive "" t
The file names are automatically provided by the sender with Telink,
so you don't have to specify the name -- just provide a null filename
as shown above.
Note that "Receive" only sets up PibTerm to receive a file -- it does
NOT initiate a transfer from the remote system. You will need to
issue a command to the remote system to get it to start a transfer so
that Pibterm can receive the file(s). For example, if you are
connected to the file section of an RBBS system, you might enter the
following sequence of statements to download a file you know you want:
*
* Request that file "goodstuf.lbr" be sent to me.
*
Stext "s;goodstuf.lbr;x|"
Receive "goodstuf.lbr" x
Redial
======
'Redial' redials the last phone number entered, like the keyboard
command Alt-Q. However, you can specify a phone number in quotes on
the 'Redial' command and PibTerm will redial that phone number until a
connection is established. For example, to repeatedly dial phone
directory entry 3 until a connection is established, write:
Documentation for PibTerm version 3.0 07 Oct 85 Page 50
Redial "3"
Repeat
======
'Repeat' begins a block of statements to be repeatedly executed until
the condition on a matching UNTIL statement is true.
Repeat
stext '|'
waitstring "Username:" 1
Until waitstring found
Testable conditions are described under the "If" statement above.
Reset
=====
'Reset' starts executing the current script from the beginning of the
script again. Reset has no arguments.
RInput
======
'RInput' prompts for input from the remote system. Specify the prompt
to be issued in quotes. The prompt string may contain the special
function key characters for carriage return, control-key definition,
and 1-second delay described under the Alt-K keyboard command.
The response can be tested for content using the "If Remote"
statement.
For example, to prompt a remote caller for a yes/no response you could
write:
RInput "Do you want to quit (enter Y or N ) ? "
Send
====
'Send' sends a file to a remote system, like the keyboard command
Alt-S. Specify the file(s) to be sent in a quoted string, and follow
that by the protocol to be used for the transfer. Protocol names are
the same as for the 'Receive' command documented above.
For example, to send the file "yumyum.lbr" to a remote system using
Xmodem-CRC, write:
Send "yumyum.lbr" xc
To send all files ending in .PAS using Telink to a remote system,
write:
Send "*.pas" tc
Documentation for PibTerm version 3.0 07 Oct 85 Page 51
'Send' only causes PibTerm to begin sending files to the remote
system. You must have previously instructed the remote system to be
ready to receive the files. For example, if you are connected to the
file section of an RBBS system, you could send the file "yumyum.lbr"
using Xmodem with the commands:
stext "r;yumyum.lbr;x|"
suspend 400
Send "yumyum.lbr" x
The waitstring is included to ensure we don't start the send procedure
before RBBS is ready.
Kermit transfers are particularly easy if the remote system can run
Kermit in server mode. Just run Kermit on the remote system, put it
into server mode, and issue Sends to your hearts content. For
example, to send a bunch of files to a Vax system running Kermit under
VMS, you could write:
*
* Wait for VMS command prompt
*
waitstring "$"
*
* Start up Kermit
*
stext "Kermit|"
*
* Wait for Kermit's prompt, then send command
* to put Kermit in server mode.
*
Waitstring ">"
stext "Server|"
*
* Wait for blurb about server mode to go by, then
* send a bunch of files, then receive a file.
*
suspend 500
send "*.pas" k
send "*.doc" k
*
receive "newstuf.doc" k
*
* Take remote Kermit out of server mode.
*
stext "finish|"
*
* Tell remote Kermit to stop executing.
*
stext "stop|"
Documentation for PibTerm version 3.0 07 Oct 85 Page 52
SText
=====
'SText' sends text to the remote system. Specify the text to be sent
in quote marks. The special characters used in function keys for
carriage returns, marking control characters, and delays may be used.
(See the section on the Alt-K keyboard command for details on these
special characters.)
You've already seen a number of examples of Stext in action in the
description of previous commands.
Suspend
=======
'Suspend' suspends script execution for a given length of time
(PibTerm continues executing). Specify the length of time in
hundredths of a second.
For example, to stop script processing for one second, enter:
Suspend 100
To stop script processing for half a second, enter:
Suspend 50
'Suspend' differs from 'Delay' in that 'Delay' stops EVERYTHING except
the reception of remote characters, while 'Suspend' only stops the
execution of script commands. Note, however, that WaitString and When
searches will continue during the suspension period. That makes
'Suspend' useful in writing conditional loops with recalcitrant remote
systems that may require a variable number of, say, carriage returns
before the remote system wakes up.
Text
====
Text sends text to the remote system, WITHOUT any special
interpretation (e.g., unlike SText). Specify the text to be sent in
quotes.
Translate
=========
'Translate' reads in a translation table, just like the "read file"
option of Alt-T. Specify the file name from which to read the
translation table in quotes. For example, to read a table from the
file "Striphi.tra", write:
Translate "striphi"
Documentation for PibTerm version 3.0 07 Oct 85 Page 53
The ".tra" is assumed.
Translate tables are useful in stripping parity bits (as in the sample
file STRIPHI.TRA provided with the PibTerm release materials), or in
removing unwanted characters.
Until
=====
See the 'Repeat' statement above.
Wait
====
'Wait' stops PibTerm execution until a given time (in HH:MM:SS form)
is reached, at which time execution proceeds. Specify the time in
HH:MM:SS form in quotes.
For example, to stop PibTerm execution until 1 AM, write:
Wait "01:00:00"
The wait command only works within a given 24 hour period.
WaitString
==========
'WaitString' causes Pibterm to wait for a given string to appear from
the remote system. Specify the string to be waited for in quotes. By
default, PibTerm waits for the string for 30 seconds. You can specify
the time in seconds following the string. If the string does not
appear within the specified time period, then execution proceeds with
the next script command. WaitString can be combined with the
Repeat/Until, While/EndWhile, and If/Else/Endif script statements to
good effect, since the 'WaitString' condition is TRUE if the specified
string appeared, and FALSE if it did not appear.
To wait until the string 'Username:' appears, write:
WaitString 'Username:'
PibTerm will wait 30 seconds for 'Username:' to appear. If you want
it to wait for, say 60 seconds, write:
WaitString 'Username:' 60
You can wait for single character:
WaitString ">"
'WaitString' slows down PibTerm's execution somewhat, so you should
not be surprised if the output from the remote system seems to be
slower than usual.
Documentation for PibTerm version 3.0 07 Oct 85 Page 54
When
====
'When' waits for a given string to appear from the remote system --
like WaitString -- and then sends a specified response string. You
specify both the subject and response strings in quotes. 'When'
searching stays active until you de-activate it using Alt-X, even
after the script itself has finished executing. Hence, to stop a
script, you can enter Alt-X, but the WHEN keeps on going. You can
enter another Alt-X to stop the WHEN. A third Alt-X takes you out of
PibTerm entirely.
'When' slows down PibTerm's execution somewhat, so you should not be
surprised if the output from the remote system seems to be slower than
usual.
While
=====
'While' begins a block of statements to be repeatedly executed as long
as the specified condition on the 'While' statement is true. A
'While' block is terminated by an 'EndWhile' statement. The form of
the conditions for the 'While' statement are identical to those of the
'Until' and 'If' statements.
For example, to execute a block of script statements as long as
PibTerm is connected to a remote system, write:
While Connected Do
.
.
.
EndWhile
The "Do" is optional and is ignored if present.
Documentation for PibTerm version 3.0 07 Oct 85 Page 55
EXAMPLE SCRIPTS
===============
The script language in PibTerm is complicated enough that some
extended examples are useful in showing how scripts can be constructed
for common login sequences.
Here is a sample script to log onto CompuServe and go to the Borland
user's group section. The comment lines describe what each command is
supposed to do.
*
* Set terminal to VT52
*
Param te=1
*
* Dial CompuServe access number in directory
*
Dial "12"
*
* Send Ctrl-C to get CompuServe's attention
*
SText '~^C'
*
* Wait for User ID prompt, then send User ID
*
Waitstring "User ID:"
Stext "72000,1234|"
*
* Wait for password prompt, then send password
*
Waitstring "Password:"
Stext "good-stuff|"
*
* Wait for main menu prompt, then request entry to
* Borland conference.
*
WaitString "!"
Stext "GO BOR100|"
*
* Prompt for automatic capture to file COMPUS.DAT.
* If automatic capture, also define a WHEN string to
* automatically go to the next message after one has
* been read.
*
Message " "
Input ">>> Automatic capture and non-stop messages? "
If localreplyin "Y,y"
Capture "COMPUS.DAT"
When "<CR> for menu :" "N"
Message " "
Message "Capturing to file COMPUS.DAT"
Message "Non-stop message mode."
Else
Documentation for PibTerm version 3.0 07 Oct 85 Page 56
Message " "
Message "Manual message reading, no capture."
Endif
Here is a script for automatically logging into a CDC NOS mainframe
system:
*
* Set VT100 emulation
*
param te=3
*
* Dial up NOS system
*
dial "2"
*
* Wake up NAM and tell it we've got a VT100.
*
stext "~|~|~|~| TC=7|"
*
* Wait for the family prompt and reply with our username.
*
waitstring ":"
stext "myfam,myusrid,mypass,iaf|"
*
* Wait for the control statement prompt, then tell NOS
* our terminal type and user job name.
*
waitstring "/"
stext "SETJOB,UJN=MYUJN|"
stext "SCREEN,VT100.|"
Here is a script to log into a Vax system under VMS:
*
* Set terminal to VT100 emulation
*
param te=3
*
* Dial Vax system
*
Message 'Dialing Vax ... '
Dial "1"
*
* Send CRs to wake up Vax's autobaud.
* Keep doing it until "Username:" prompt appears.
*
Repeat
stext '|'
waitstring "Username:" 1
Until waitstring found
*
* Send my username.
Documentation for PibTerm version 3.0 07 Oct 85 Page 57
*
Stext "MYUSRID|"
*
* Wait for password prompt.
*
Waitstring 'Password:'
*
* Send password.
*
Stext "MYPASS|"
Here is a script to login into an RBBS system:
*
* Set BBS/ANSI
*
param te=2
*
* Dial number
*
Message "Dialing RBBS"
Dial "1"
*
* Send a few carriage returns to wake up RBBS
*
REPEAT
Stext "|"
WaitString "ame:" 1
UNTIL Waitstring
*
* Send first name, last name, and password
*
Stext "first;last;mypass|"
Here is a script to log into an IBBS system:
*
* Set BBS/ANSI
*
param te=2
*
* Dial number
*
Message "Dialing IBBS"
Dial "1"
*
* Wait for ID request
*
Waitstring "ID: "
*
* Send first name, last name, and password
Documentation for PibTerm version 3.0 07 Oct 85 Page 58
* Also request message reading from last previous message
*
Stext "first;last;mypass;m;r;*"
Here is a script to log into a FIDO system:
*
* Set BBS/ANSI
*
param te=2
*
* Dial number
*
Message "Dialing FIDO"
Dial "1"
*
* Send some spaces until system wakes up
*
Repeat
SText " "
Waitstring "Your FIRST name:" 1
Until Waitstring
*
* Send first name, last name.
*
Stext "first last|"
*
* Reply "y" to validation prompt
*
Waitstring "(y,n)"
Stext "y|"
*
* Wait for password prompt and then send password.
*
Waitstring "assword:"
Stext "mypass|"
NOTES ON ERROR HANDLING
=======================
PibTerm incorporates an interrupt handler for DOS interrupt 24, the
critical error interrupt. This interrupt is signalled for error
conditions such as "disk not ready."
If PibTerm should abort, then PibTerm's error handler will be in
force. PibTerm DOES try to handle all errors, and die reasonably
gracefully if possible. Sometimes a system lockup cannot be avoided,
so it is best to re-boot (using CTRL-ALT-DEL) to avoid problems. You
may also want to do this even if PibTerm appears to have died with
dignity, since if any files were open and not closed by the error
handler, then the number of available MS DOS file handles will be
considerably reduced.
Documentation for PibTerm version 3.0 07 Oct 85 Page 59
Normally, when you make an invalid keyboard entry in response to a
prompt, PibTerm sounds the terminal bell. In mute mode (Alt-M), the
bell is not sounded, and instead the message "<ALERT>" appears on line
25 of the display for a second or so. This <ALERT> also flashes any
other time a bell (Control-G) character is received from the remote
system and mute mode is in effect.
INTRODUCTION TO HOST MODE
=========================
PibTerm provides simple host mode facilities for message leaving and
file transfer. PibTerm can be used as a very simple remote bulletin
board. However, it lacks the security provisions needed for a genuine
BBS, and is really intended to cover the need for a simple remote
facility for an individual or a small private group of users.
PibTerm host mode assumes a Hayes-compatible modem. You may need to
modify the code if your modem doesn't return verbal codes sufficient
to determine the baud rate of the caller. The modem is assumed to be
set to answer the phone automatically.
To invoke host mode after entering PibTerm, enter Alt-W. If you want
the remote session echoed to the printer or captured to disk, then use
the Alt-L and Alt-O commands as described above before using Alt-W to
invoke host mode.
FILES IN HOST MODE
==================
The following files are required for use with the host mode of
PibTerm:
PIBTERM.USF
===========
PIBTERM.USF is a simple text file containing the first name,
last name, and password for each authorized user. This file
can be created using any text editor that produces ascii
files. The format is:
firstname;lastname;password
i.e., semicolons separating the first name, last name, and
password.
This file MUST be created outside of PibTerm; there are no
provisions for a remote caller to get added to the user file.
PIBTERM.MSG
===========
Documentation for PibTerm version 3.0 07 Oct 85 Page 60
PIBTERM.MSG is the message file, also a simple ascii text
file. Message header information is flagged by '==' in
columns one and two. The end of a message is marked by '==
End' in column one. This file will be created by PibTerm if
it doesn't exist when a host session requires its presence.
To remove messages, use a text editor and just delete the
header lines and text for a message. There are no provisions
for deleting messages remotely.
PIBTERM.XFR
===========
PIBTERM.XFR is the file transfer list. This file contains a
list of files which may be downloaded by a remote user. Files
NOT on the transfer list cannot be downloaded.
A file with the same name as a file on this list cannot be
uploaded by a remote user. Further, any file with the same
name as one of the PibTerm host mode files cannot be uploaded,
to prevent a remote user from overwriting those host mode
files.
A simple way to create the transfer list is to execute the DOS
command:
DIR >PIBTERM.XFR
and then edit the resulting file using a text editor to remove
unneeded lines and get the file names into 'name.ext' form as
required by PibTerm. Each file name must appear in columns
1-14 of a separate line in PIBTERM.XFR. You can use the
remainder of the line for file size, dates, a description, or
whatever you like.
Note that all files must be in a single directory -- the
current logged directory when host mode is entered.
Here are sample lines from a PIBTERM.XFR file (the numbers are
column numbers and don't appear in the file):
1 15
VT100.FNC 428 5-28-85 12:26a
CDCNOS.FNC 211 6-17-85 4:13a
PIBTERM.CMT
===========
PIBTERM.CMT is the private comments file -- only readable by
you. The format is the same as the message file.
PIBTERM.LOG
===========
Documentation for PibTerm version 3.0 07 Oct 85 Page 61
PIBTERM.LOG is the log file telling who logged on and when
they logged off.
Note that all these host mode files are simple sequential ascii files.
This implies that they should be kept small for reasonable performance
-- which is fine for a small group of users. This implementation does
not provide good performance for a large group of users; if you need
that, you should obtain a real BBS program designed to handle large
numbers of users.
USING HOST MODE
===============
After Alt-W is entered, PibTerm enters host mode and waits for a call.
The mode is assumed to be able to answer the phone. The modem is
initialized using the host-mode initialization string described above.
PibTerm then scans the user file and stores the user names and
passwords in memory for quick access. The message bases are also
scanned to find the number of current messages.
Once in host mode, NO PIBTERM COMMANDS are recognized. You can hit
the ESC (escape) key to return to terminal emulation mode, or you can
hit the enter (return) key to start a host-mode session right at your
PC. When a remote session is in progress, you can enter data at the
keyboard, which will appear to PibTerm as if the remote user had typed
the entry.
When PibTerm receives a call, it waits for the modem to answer the
phone. PibTerm must now determine the calling characteristics (speed
and parity) of the caller. This is done in one of two ways, depending
upon the setting of the configuration parameter AB in file
PIBTERM.CNF.
AB = 1: PibTerm scans the modem connect message for the baud rate of
the caller, and determines the parity later from the initial keyboard
entries. This is the preferred method if your modem can return the
baud rate on the connect message. For example, the USR Courier
returns CONNECT for a 300-baud connection, CONNECT 1200 for a 1200
baud connection, and CONNECT 2400 for a 2400 baud connection.
AB = 0: PibTerm starts at 1200 baud, no parity. PibTerm waits for the
remote caller to enter a series of carriage returns or spaces, SLOWLY.
PibTerm determines the caller's baud rate by adjusting the
communications parameters until the spaces or carriage returns are
recognized. The parity can be determined at the same time.
After determining the proper baud rate, PibTerm issues a short welcome
message which looks like:
PibTerm v3.0, October, 1985
Beginning Remote Communications
Documentation for PibTerm version 3.0 07 Oct 85 Page 62
Test if line feeds required ...
Are these lines O V E R P R I N T I N G ?
The caller may see these lines as above, or the lines may be
overprinting on the remote terminal. If the lines are NOT
overprinting, then N should be entered as a response to the "...
overprinting ?' question. If the lines ARE overprinting, then Y
should be entered. PibTerm will then send line feeds as necessary to
the remote user.
Following this, PibTerm prompts for first name, last name, and
password:
Enter first name: <user enters first name>
Enter last name: <user enters last name>
Enter password: <user enters password>
The entries MUST be made on separate lines; you CANNOT enter the first
and last name on one line. If either the user name or password is
incorrectly entered, then PibTerm issues the prompt again, a maximum
of three times. If the information is not provided correctly on the
last try, then PibTerm hangs up the phone.
The case of the first and last names is irrelevant; any combination of
upper and lower case is acceptable (i.e., Philip = PHILIP = PhIlIp).
However, PASSWORDS ARE CASE SENSITIVE!! This means that Mypass,
MYPASS, and MyPass are ALL DIFFERENT PASSWORDS.
REPEATING: Passwords ARE case-sensitive!
If there are any messages addressed to the caller, then the message
headers of those message are displayed.
Host mode provides two main sections: a main menu for message entry,
and a secondary menu for file transfers. The main menu appears as
follows:
======================================================
= PibTerm Host Mode Main Menu =
======================================================
E=Enter message
R=Read message
S=Scan messages
P=Personal message scan
Q=Quit and logoff
F=File transfers
G=Gossip mode
X=Expert mode
C=Send comments
======================================================
Documentation for PibTerm version 3.0 07 Oct 85 Page 63
When prompted by an 'Enter command ? ' the caller can enter one of
the command letters. No carriage return is needed.
E is used to enter a message in the message base.
R is used to read a message.
S is used to display the message numbers and headers.
P scans the message base for messages addressed to the caller.
Q ends the host session and logs off the caller.
F enters the file transfer section (see below).
G enters a "gossip" mode which allows the caller to "chat" with
the host mode operator.
X turns on expert mode and suppresses the long menu displays.
C is used to send a private message to the host system operator.
The file transfer menu appears when F is entered:
======================================================
= PibTerm Host Mode File Transfer Menu =
======================================================
U=Upload file
D=Download file
L=List files for transfer
M=Return to main menu
Q=Quit and logoff
X=Expert mode
======================================================
U is used to send a file to PibTerm.
D is used to receive a file from PibTerm.
L lists the files available for transfer.
M returns the caller to the main menu.
Q ends the host session and logs off the caller.
X turns on expert mode and short prompts.
In host mode, PibTerm looks for input from either the host system
keyboard or the remote system. Thus, you can run a "remote" session
from the host machine's keyboard itself. This feature also allows you
to enter commands to complete what a remote user has input. You may
also hit function keys F1 and F2: F1 enters gossip mode, and F2 hangs
up the remote user.
Documentation for PibTerm version 3.0 07 Oct 85 Page 64
If you have used bulletin board systems like RBBS or IBBS, then you
should have no trouble understanding how to use PibTerm host mode.
The distributed executable version of PibTerm provides for a maximum
of fifteen users. You can change the constant MaxUsers in module
PIBHOSTA.PAS of the source and recompile to get a larger allowed
number of users.
ACKNOWLEDGEMENTS
================
I would like to thank those who have made suggestions or provided code
for additional PibTerm features. I would also like to thank those
Sysops who have tolerated my hogging their systems in order to shake
out the bugs in file transfers in ANSI emulation. And, last but not
least, I'd like to thank those other software authors who provided
excellent programs to model PibTerm after, and especially those who
contributed source to the public domain. The following list of names
is not complete, but I feel it is important to acknowledge those whom
I can remember. Programs like PibTerm also benefit from the
suggestions, modifications, and additions of others. Some of these
individuals I have never actually communicated with, but PibTerm would
be much poorer without their software contributions.
Sysops:
======
Bob Blacher, Rod Bowman, Sid Bratkovich, Chuck Childers,
Craig Derouen, Howard Ekman, Ron Fox, Joel Garrett,
Mike Johnson, Bob Klahn, Bob Mahoney, Pete Olympia,
Gene Plantz, Rich Schinnell, Steve Stern, Vern Keenan
In particular, Bob Blacher and Joel Garrett have gone out of their way
to test PibTerm on various machines and configurations to which I have
no access. Bob Klahn, Sid Bratkovich, and Craig Derouen -- all Fido
sysops -- showed exceptional patience while I tried to get Telink
protocol to work properly with Fido.
Software authors, code contributors:
===================================
Alan Bishop, Don Conover, Jeff Duncan, C. J. Dunford,
Jim Everingham, John Friel, Guy Gallo, Tom Hanlin,
Mike Harrington, Tim Krauskopf, Bela Lubkin, Paul Meiners,
Jim Nutt, Michael Quinlan, Bob Ray, Greg Ryan, Ben Slivka
Others:
======
Charlie Price and Lon Mu Liu for many valuable suggestions.